我試圖做一些研究,以找到多服務器環境中會話管理的最佳選擇,並想知道人們發現什麼成功以及爲什麼。優點和缺點。什麼用於會話管理?
RDBMS - 較慢。更好地用於其他數據。
Memcached的 - 你可以不拿倒memcached服務器,而不會丟失會話
Redis的 - 修復的memcached的問題,但對於易擴展的?容錯?
Cassandra - 具有良好的容錯性。優點和缺點?
MongoDB,其他?
謝謝!
我試圖做一些研究,以找到多服務器環境中會話管理的最佳選擇,並想知道人們發現什麼成功以及爲什麼。優點和缺點。什麼用於會話管理?
RDBMS - 較慢。更好地用於其他數據。
Memcached的 - 你可以不拿倒memcached服務器,而不會丟失會話
Redis的 - 修復的memcached的問題,但對於易擴展的?容錯?
Cassandra - 具有良好的容錯性。優點和缺點?
MongoDB,其他?
謝謝!
我個人使用Cassandra來保存php會話數據。它使用session_id將其存儲在單個行中的單個列中:{session_data_as_json}並在該列上設置TTL,以便自動執行垃圾清理。作品一種享受。
我去卡桑德拉,因爲它具有其他用戶數據已經...對於緩存,我啓用了APC對所有前端Web服務器,並沒有任何問題......
這是最好的方法?不確定。它適合我需要實現的環境,技術和業務規則。 ...
側面說明,我也開始在本地的PHP工作 - >卡桑德拉會話處理程序:https://github.com/sdolgy/php-cassandra-sessions - 這顯示了TTL的是如何設定PHPCassa和卡桑德拉
Redis的 - 修復的問題memcached,但是如何緩解 的可擴展性?容錯?
Redis的支持replication和即將cluster還應該支持跨多個節點的數據分片。
有點遲了,但也許有人有興趣跟進。我們使用Cassandra作爲會話存儲並通過春季會話訪問它(使用本地春季會話 - cassandra插件)。會話中的對象通過Kryo進行編組/解組(https://github.com/EsotericSoftware/kryo)。
這個設置給了我們1個2毫秒之間的會話get和1ms的下一個保存:
但根據環載有在響應時間上的一些異常: