16

最近、phpでセッションを保存するためにmemcachedを実装しようとしました。php.iniのsession.save_handlerを変更しましたが、ほとんどの場合、正しく機能します。セッションはそこに保存されます。ただし、ときどき、特定のセッションで次の奇妙なメッセージが表示されます。

PHP警告:不明:セッションデータ(memcached)の書き込みに失敗しました。0行目のUnknownで、session.save_pathの現在の設定が正しい(xxxx:11211)ことを確認してください。

セッションデータは同じで、memcachedの1MBの障壁の下にありますが、このメッセージの発生パターンはまだわかりません...おそらく毎分数回です。ウェブサイトは通常中程度の負荷で、同時に150人のユーザーがいます。

4

4 に答える 4

17

memcacheを使用している場合は、プレフィックスsave_pathが必要です。tcp://

memcachedを使用している場合は、プレフィックスを付けsave_pathないでください。tcp://

于 2013-08-22T04:06:05.900 に答える
5

答えは、Memcachedオブジェクトは最大1MBになる可能性があるということです(デフォルト)

配列またはオブジェクトがこの制限を超えると、オブジェクトは魔法のように削除されます:)

セッション内のすべてのアイテムが削除されます。これは、現時点で私が自分で体験したためです。

このようにMemcachedセッションサーバーを起動して解決しました

memcached -I 10m
于 2014-11-10T00:48:31.580 に答える
0

これはmemcached拡張機能の使用と関係があり、セッションの前に初期化されていないと思います。memcached拡張機能ではなくmemcache拡張機能を使用するように切り替えましたが、機能します。

session.save_handler = memcache
session.save_path="tcp://192.168.1.103:11211"
于 2012-11-26T12:08:24.190 に答える
0

docker-composeスタックのsymfony2とmemcachedで同様の問題が発生しました。

エラーは次のように述べています。

警告:セッションデータ(ユーザー)の書き込みに失敗しました。session.save_pathの現在の設定が正しいことを確認してください

そして問題は私が時代遅れだったということでした./app/config/parameters.yml

memchached設定をチェックして、ニーズに合わせてください。例:

parameters:
    session_memcached.host: '%session_memcached_host%'
    session_memcached.port: '%session_memcached_port%'
    session_memcached.prefix: '%session_memcached_prefix%'
    session_memcached.expire: '%session_memcached_expire%'
于 2016-03-07T11:43:53.460 に答える