我一直在谷歌上搜索并阅读一些cassandra书籍。但我还没有得到答案。在将我们的时间投入redis或riak集群进行php会话存储之前,我们想要对此进行更多评估。
我们的用户在地理位置上被重定向到3个数据中心(美国,欧盟,亚洲),我们在所有3个地点运行多数据中心cassandra。
对我们来说,最好和最有效的是能够使用Cassandra作为会话存储,因此我们不必维护另一个群集。我们不介意用户必须重新登录,因为他们被重定向到不同的数据中心,但希望尽可能地将其最小化。
所以在我们的场景中,cassandra在技术上是一个很好的选择作为一个PHP会话存储?如果是的话,cassandra的最佳做法是什么?我们得到了php。
谢谢!
答案 0 :(得分:1)
Cassandra可能是一个很好的会议商店。但是,请注意Cassandra最终的一致设计并相应地选择您的读取设置。例如,如果使用默认复制因子3,那么在执行下一个读取请求之前,可能无法完全复制(到其他2个节点)。如果您的读取一致性级别为1(最快读取性能),则可能会从未收到最新写入的节点返回旧数据。我建议使用QUORUM或更高的读取一致性来避免这个问题 - 性能会比1级略低,但这是在这种情况下可能需要的权衡。
答案 1 :(得分:0)
PHP支持开箱即用的各种会话方法 - 磁盘,memcached和其他一些方法。猜测Cassandra不是其中之一 - 但你可以相当容易地实现自己的会话存储 - 请参阅此页面以获得解释 - http://php.net/session.customhandler
你必须实现一组方法并告诉PHP它们,或者在新版本上,你可以实现一个接口 - 这更好/更清洁!