実行時設定

php.ini の設定により動作が変化します。

Memcached 設定オプション
名前 デフォルト 変更可能 変更履歴
memcached.sess_locking 1 PHP_INI_ALL
memcached.sess_consistent_hash 0 PHP_INI_ALL
memcached.sess_binary 0 PHP_INI_ALL
memcached.sess_lock_wait 150000 PHP_INI_ALL
memcached.sess_prefix memc.sess.key. PHP_INI_ALL
memcached.sess_number_of_replicas 0 PHP_INI_ALL
memcached.sess_randomize_replica_read 0 PHP_INI_ALL
memcached.sess_remove_failed 0 PHP_INI_ALL
memcached.compression_type fastlz PHP_INI_ALL
memcached.compression_factor 1.3 PHP_INI_ALL
memcached.compression_threshold 2000 PHP_INI_ALL
memcached.serializer php PHP_INI_ALL
memcached.use_sasl 0 PHP_INI_SYSTEM

以下に設定ディレクティブに関する 簡単な説明を示します。

memcached.sess_locking integer

セッション単位のロックを使う。設定値として On, Off が使えます。デフォルトは ON です。

memcached.sess_consistent_hash integer

セッション管理の コンシステント・ハッシュ モードです。 On にすると、セッション管理にコンシステント・ハッシュ法を使います。 コンシステント・ハッシュ法を使うと、既存のキーに煩わされることなく ノードを追加したり削除したりできます。デフォルトは Off です。

memcached.sess_binary integer

セッション管理にmemcachedのバイナリプロトコルを使います。 Libmemcached のレプリカはこのバイナリモードが有効になっている場合にのみ動作します。 デフォルトは Off です。

memcached.sess_lock_wait integer

セッションデータを書き込むときの spin lock の待ち時間をマイクロ秒単位で指定します。 この値を設定するときは注意してください。数値の値が設定できますが、 0 はデフォルトの値を使うと解釈されます。負の値を設定するとロックを掛けようと試みる 回数が減ってしまいます。デフォルトは 150000 です。

memcached.sess_prefix string

セッション管理に使うキーのプレフィックスです。 219バイト以下の文字列が使えます。デフォルトの値は "memc.sess.key" です。

memcached.sess_number_of_replicas integer

セッションデータのレプリカの数です。

memcached.sess_randomize_replica_read integer

複数のサーバのレプリカからセッションデータを読み取る際、読み取りを始める最初のサーバをランダムに選ぶかを指定します。

memcached.sess_remove_failed integer

通信に失敗した memcached サーバを自動的にサーバリストから外すかを指定します。

memcached.compression_type string

圧縮のタイプを指定します。fastlz か zlib が指定できます。デフォルトは fastlz です。

memcached.compression_factor float

圧縮係数。圧縮後のサイズが圧縮係数の限界値を超えていた場合にだけ値を圧縮して保存します。 元のサイズ > 圧縮後のサイズ * 圧縮係数の場合にだけ値を圧縮して保存します。 デフォルト値は 1.3 (23%強の圧縮率) です。

memcached.compression_threshold integer

圧縮のしきい値。このしきい値を下回るシリアライズ済みの値は圧縮しません。 デフォルトは2000バイトです。

memcached.serializer string

新しい memcached オブジェクトのデフォルトのシリアライザを設定します。設定値として php, igbinary, json, json_array が使えます。

json

標準的な JSON を使います。このシリアライザは高速でコンパクトですが、UTF-8 でエンコードされたデータでしか動作しませんし、完全なシリアライズを実装していません。詳細は JSONエクステンション を参照して下さい。

json_array

json と同じですが、シリアライズしたデータを配列に入れます。

php

標準的なPHPのシリアライザです。

igbinary

バイナリデータのシリアライザです。

デフォルトは 利用可能な場合 igbinary です。 利用できない場合は php がデフォルトになります。

memcached.use_sasl integer

接続時に SASL認証 を使います。設定値として On, Off が使えます。デフォルトは Off です。

add a note add a note

User Contributed Notes 3 notes

up
3
senz
3 years ago
In case, you are wondering why your sessions are "killed" after 1440 seconds, take a look at session.gc_maxlifetime. It's value is used in memcached expiration field according to memcache protocol rules. Also, do not forget about cookie expiration time
up
-1
Piotr Gabryjeluk
3 months ago
Apparently in version 3.0.3 the default for memcached.sess_binary_protocol in TRUE. Also note the key is memcached.sess_binary_protocol, not memcached.sess.

Setting memcached.sess_binary_protocol to FALSE is required if you want to save the session to memcached through twemproxy.
up
-5
adolfoabegg at gmail dot com
5 years ago
you can get the list of the possible options for the memcached.ini configuration file here:
https://github.com/php-memcached-dev/php-memcached/blob/master/memcached.ini
To Top