2013-12-13 38 views
2

我一直在谷歌搜索幾天,並閱讀一些卡桑德拉書籍。但我還沒有得到我的答案。我們希望在將我們的時間投入到redis或riak集羣中來進行php會話存儲之前,對其進行評估。我可以使用cassandra(2.0.3)作爲php會話存儲(例如vs vs redis)嗎?

我們的用戶被重定向到3個數據中心(美國,歐盟,亞洲),我們在所有3個地點運行多數據中心cassandra。

對我們來說最好的和最有效的方式是能夠使用Cassandra作爲會話存儲,因此我們不必維護另一個羣集。我們不介意用戶必須重新登錄,因爲他們被重定向到不同的數據中心,但希望儘可能地減少這種情況。

所以在我們的場景中cassandra在技術上是一個很好的選擇作爲php會話存儲?如果是的話,卡桑德拉的最佳做法是什麼?我們得到了PHP覆蓋。

謝謝!

回答

1

卡桑德拉可能是一個很好的會議商店。但是,請注意Cassandra的最終一致性設計,並相應地選擇您的讀取設置。例如,如果使用默認複製因子3,那麼在執行下一個讀取請求之前,可能不會完全複製寫入(到其他2個節點)。如果您的讀取一致性級別爲1(最快讀取性能),則可能會從未收到最新寫入的節點返回舊數據。我建議使用QUORUM或更高版本的讀取一致性來避免此問題 - 性能會低於1級,但在這種情況下這可能是必要的折衷。

+0

我一直在閱讀卡桑德拉可調一致性選項。看起來像LOCAL_QUORUM是我們問題的解決方案。用戶在地理上重定向到不同數據中心的機會應該非常低。因此,在我們的使用情況下,權衡他們需要重新登錄是完全可以接受的。你同意嗎?謝謝你的回答。 – laapsaap

+0

對慢速響應抱歉......是的,如果數據中心重定向被認爲是可接受的風險,LOCAL_QUORUM聽起來很合適。 – mark

0

PHP支持開箱即用的各種方法 - 磁盤,memcached和其他一些方法。猜測Cassandra不是其中之一 - 但你可以很容易地實現你自己的會話存儲 - 看到這個頁面的解釋 - http://php.net/session.customhandler

你必須實現一套方法並告訴PHP他們或者更新版本,你可以實現一個界面 - 這更好更清潔!

+0

嗨, 我們得到的php部分覆蓋了我們寫的cassandra php orm類。但只是想知道它在技術上是一個使用cassandra作爲php會話存儲的好選擇。我們剛開始使用cassandra,所以還沒有很好的經驗。 – laapsaap