抽象化されたセッションストレージレイヤーを持つアプリケーション(Magento)があります。セッションを保存するための最良の方法を視覚化しようとしています。
mysqlデータベース? innodb_buffer_pool_sizeが非常に大きい専用データベースを考えているので、基本的にはRAMディスクバックアップ付きキャッシュです。セッション専用に別のDBを用意し、他のDBのものを配置することを考えています。別のDB/DBサーバー。
Memcache?これは素晴らしいことですが、サーバーがクラッシュした場合に何が起こるかについて少し心配していますか? Memcacheが配布されていないことを理解しているため、クラッシュによってセッションのパーティションが失われます。配布させることはできますか? (pecl memcache module> = 3を使用できると言われました
tmpfsメモリファイルストレージ?これは機能しますが、rsyncまたはそのフォルダーで書き込みが発生したことを検出するものを使用して、書き込み時にセッションを他のすべてのサーバーと同期する必要があります。このために何かが存在しなければならないと確信しています。
私が考えていない他の解決策?アイデアが大好きです。
ありがとう!
Memcache?これは素晴らしいことですが、サーバーがクラッシュした場合に何が起こるかについて少し心配していますか? Memcacheが配布されていないことを理解しているため、クラッシュによってセッションのパーティションが失われます。配布させることはできますか? (pecl memcache module> = 3を使用できると言われました
repcached を使用しています。それは以下のように開始されます:
サーバー1:
memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached.pid -x <server2_ip>
サーバー2:
memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached.pid -x <server1_ip>
PHP Memcache拡張機能の構成:
extension=memcache.so
memcache.allow_failover = 1
memcache.redundancy = 1
memcache.session_redundancy=2
memcache.hash_strategy = consistent
そして、php.ini
のセッションハンドラー:
session.save_handler = memcache
session.save_path="tcp://ip1:11211, tcp://ip2:11211"