php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
memcached.sess_locking | On | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.sess_consistent_hash | On | INI_ALL | memcached 2.1.0 以降で利用可能です。memcached 3.0.0 以降は、デフォルト値は On です。 |
memcached.sess_binary | Off | INI_ALL | memcached 2.0.0 以降で利用可能です。memcached 3.0.0 以降は、memcached.sess_binary_protocol に置き換えられました。 |
memcached.sess_lock_wait | 150000 | INI_ALL | memcached 0.1.0 以降で利用可能ですが、memcached 3.0.0 以降では削除されています。 |
memcached.sess_prefix | memc.sess.key. | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.sess_number_of_replicas | 0 | INI_ALL | memcached 2.1.0 以降で利用可能です。 |
memcached.sess_randomize_replica_read | Off | INI_ALL | memcached 2.1.0 以降で利用可能です。 |
memcached.sess_remove_failed | On | INI_ALL | memcached 2.1.0 以降で利用可能です。memcached 3.0.0 以降は、memcached.sess_remove_failed_servers に置き換えられました。 |
memcached.compression_type | fastlz | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.compression_factor | 1.3 | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.compression_threshold | 2000 | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.serializer | igbinary | INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.use_sasl | Off | INI_ALL | memcached 2.2.0 以降で利用可能ですが、memcached 3.0.0 以降では削除されています。 |
memcached.default_binary_protocol | Off | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.default_connect_timeout | 0 | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.default_consistent_hash | Off | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_binary_protocol | On | INI_ALL | memcached 3.0.0 以降で利用可能です。memcached.sess_binary を置き換えるものです。 |
memcached.sess_connect_timeout | 1000 | INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_consistent_hash_type | ketama | INI_ALL | memcached 3.1.0 以降で利用可能です。 |
memcached.sess_lock_expire | 0 | INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_lock_retries | 5 | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_lock_wait_max | 150 | INI_ALL | memcached 3.0.0 以降で利用可能です。デフォルト値は memcached 3.1.0 以降は 150 です (それより前のバージョンでは 2000 でした)。 |
memcached.sess_lock_wait_min | 150 | INI_ALL | memcached 3.0.0 以降で利用可能です。デフォルト値は memcached 3.1.0 以降は 150 です (それより前のバージョンでは 1000 でした)。 |
memcached.sess_persistent | Off | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_remove_failed_servers | Off | INI_ALL | memcached 3.0.0 以降で利用可能です。memcached.sess_remove_failed を置き換えるものです。 |
memcached.sess_server_failure_limit | 0 | INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_sasl_password | null | INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_sasl_username | null | INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.store_retry_count | 0 | INI_ALL | memcached 2.2.0 以降で利用可能です。 memcached 3.2.0 以降では、デフォルト値は 0 です。 (それより前のバージョンでは、2 でした) |
以下に設定ディレクティブに関する 簡単な説明を示します。
memcached.sess_locking
bool セッション単位のロックを使う。設定値として On
, Off
が使えます。デフォルトは On
です。
memcached.sess_consistent_hash
boolOn
にすると、セッション管理に コンシステント・ハッシュ法 (libketama) を使います。 コンシステント・ハッシュ法を使うと、既存のキーに煩わされることなく ノードを追加したり削除したりできます。デフォルトは On
です。
memcached.sess_binary
bool セッション管理にmemcachedのバイナリプロトコルを使います。 Libmemcached のレプリカはこのバイナリモードが有効になっている場合にのみ動作します。 デフォルトは Off
です。
memcached.sess_lock_wait
int セッションデータを書き込むときの spin lock の待ち時間をマイクロ秒単位で指定します。 この値を設定するときは注意してください。数値の値が設定できますが、 0
はデフォルトの値を使うと解釈されます。負の値を設定するとロックを掛けようと試みる 回数が減ってしまいます。デフォルトは 150000
です。
memcached.sess_prefix
string セッション管理に使うキーのプレフィックスです。 219バイト以下の文字列が使えます。デフォルトの値は memc.sess.key
です。
memcached.sess_number_of_replicas
int データを書き込む、 追加の memcached サーバーの数を指定します。 これは、libmemcached が "poor man's HA" と呼んでいるものです。 この値が0より大きく、sess_remove_failed_servers
が 有効な場合、 memcached サーバーがダウンした時にセッションはレプリカを使って継続されます。 しかし、ダウンした memcached サーバーが再び復帰した場合は、 セッションは古いデータを持つセッションを読みとる場合もありますし、 データを全く読み取れない場合もあります。デフォルト値は 0
です。
memcached.sess_randomize_replica_read
bool複数のサーバーのレプリカからセッションデータを読み取る際、読み取りを始める最初のサーバーをランダムに選ぶかを指定します。
memcached.sess_remove_failed
int通信に失敗した memcached サーバーを自動的にサーバーリストから外すかを指定します。
memcached.compression_type
string 圧縮のタイプを指定します。fastlz
, zlib
が指定できます。デフォルトは fastlz
です。
memcached.compression_factor
float 圧縮係数。圧縮後のサイズが圧縮係数の限界値を超えていた場合にだけ値を圧縮して保存します。 元のサイズ > 圧縮後のサイズ * 圧縮係数
の場合にだけ値を圧縮して保存します。 デフォルト値は 1.3
(23%強の圧縮率) です。
memcached.compression_threshold
int 圧縮のしきい値。このしきい値を下回るシリアライズ済みの値は圧縮しません。 デフォルトは 2000
バイトです。
memcached.serializer
string 新しい memcached オブジェクトのデフォルトのシリアライザを設定します。設定値として php
, igbinary
, json
, json_array
, msgpack
が使えます。
標準的な JSON を使います。このシリアライザは高速でコンパクトですが、UTF-8 でエンコードされたデータでしか動作しませんし、完全なシリアライズを実装していません。詳細は JSON拡張モジュール を参照ください。 memcached 0.2.0 以降で利用可能です。
json
と同じですが、シリアライズしたデータを配列に入れます。 memcached 2.0.0 以降で利用可能です。
標準的なPHPのシリアライザです。
バイナリデータのシリアライザです。 memcached 0.1.4 以降で利用可能です。
言語に依存しない、バイナリデータのシリアライザです。 memcached 2.2.0 以降で利用可能です。
デフォルトは 利用可能な場合 igbinary
です。 igbinary が利用できない場合は msgpack
が(利用可能な場合のみ) デフォルトになります。 いずれも利用できない場合は、php
がデフォルトになります。
memcached.use_sasl
bool 接続時に SASL認証 を使います。設定値として On
, Off
が使えます。デフォルトは Off
です。
memcached.default_binary_protocol
bool 新しい接続で使う、デフォルトの memcached プロトコルを設定します (セッションで使う memcached プロトコルを設定するには、 memcached.sess_binary_protocol
を代わりに使って下さい)。 On
にすると、memcached バイナリプロトコルをデフォルトで使います。 Off
にすると、memcached テキストプロトコルを使います。 デフォルトは Off
です。
memcached.default_connect_timeout
int 新しい接続で使う、デフォルトの memcached の接続タイムアウト値を設定します (セッションで使う memcached の接続タイムアウト値を設定するには、 memcached.sess_connect_timeout
を代わりに使って下さい)。 ノンブロッキングモードの場合、この値は ソケット接続中のタイムアウトの値をミリ秒単位で変更します。 -1
を指定すると、タイムアウトしません。 0
を指定すると、memcached ライブラリのデフォルトの接続タイムアウト値を使います。 デフォルトは 0
です。
memcached.default_consistent_hash
bool 新しい接続で使う、デフォルトの コンシステント・ハッシュ法を指定します (セッションで使う コンシステント・ハッシュ法 を設定するには、 memcached.sess_consistent_hash
を代わりに使って下さい)。 On
にすると、セッション管理に コンシステント・ハッシュ法 (libketama) を使います。 コンシステント・ハッシュ法を使うと、既存のキーに煩わされることなく キャッシュノードを追加したり削除したりできます。デフォルトは Off
です。
memcached.sess_binary_protocol
bool memcached でセッション管理を行う場合に、 memcached text プロトコルではなく memcached バイナリプロトコル を使うように指定します。 これは、libmemcached レプリカのバイナリモードが有効になっている場合にのみ有効です。 バイナリプロトコルが無効な場合にのみ動作するプロキシ(たとえば、twemproxy) もあります。 デフォルト値は libmemcached 1.0.18 以降は On
です。 それより前のバージョンでは Off
になっています。
注意: php-memcached の以前のバージョンでは、この設定は
memcached.sess_binary
と呼ばれていました。
memcached.sess_connect_timeout
int memcached の接続タイムアウト値を指定します。 ノンブロッキングモードの場合、この値は ソケット接続中のタイムアウトの値をミリ秒単位で変更します。 -1
を指定すると、タイムアウトしません。
memcached.sess_consistent_hash_type
string Memcached のセッション管理で使う、コンシステント・ハッシュ法を指定します。 ketama
を指定すると、セッション管理にコンシステント・ハッシュ(libketama) を使います。 これは php-memcached 3.x のデフォルトです。 ketama_weighted
を指定すると、重み付きのコンシステント・ハッシュ(libketama) をセッション管理に使います。 デフォルトは ketama
です。 php-memcached 3.0 より前のバージョンでは、デフォルトは ketama_weighted
でした。
memcached.sess_lock_expire
int ロックが解放されるまでの時間を秒単位で指定します。 0
を指定すると、デフォルトの動作になります。 つまり、PHP の max_execution_time
の値を使います。 デフォルト値は 0
です。
memcached.sess_lock_retries
int セッションのロックを取得するためのリトライ回数を指定します。 この値には、最初の試行は含まれません。 デフォルト値は 5
です。
memcached.sess_lock_wait_max
int セッションのロック取得を試みる際に、 それぞれの試行の間に待つ最大の時間をミリ秒単位で指定します。 デフォルト値は 150
です。
memcached.sess_lock_wait_min
int セッションのロック取得を試みる際に、 それぞれの試行の間に待つ最小の時間をミリ秒単位で指定します。 ロック取得のリトライを行うたびに、memcached.sess_lock_wait_max
に達するまで、 現在のリトライ時間を2倍して待ちます。 その後は、memcached.sess_lock_wait_max
の間待ちます。 デフォルト値は 150
です。
memcached.sess_persistent
bool スクリプトの実行が終了した後、session.save_path
に対応する memcached 接続を再利用するかどうかを指定します。 特定の設定 (たとえば SASL 設定や, sess_binary_protocol) がリクエスト間で上書きされる場合は、 この設定を使ってはいけません。 デフォルト値は Off
です。
memcached.sess_remove_failed_servers
bool ダウンした memcahced サーバーを自動的に削除する機能を有効にします。 デフォルト値は Off
です。
注意: 前のバージョンでは、この設定は
memcached.sess_remove_failed
と呼ばれていました。
memcached.sess_server_failure_limit
int 指定した回数接続が失敗した場合に、サーバーを削除する機能を有効にします。 デフォルト値は 0
です。
memcached.sess_sasl_password
stringセッションの SASL パスワードを指定します。 SASL を有効にするには、ユーザー名とパスワードを両方指定する必要があります。
memcached.sess_sasl_username
stringセッションの SASL ユーザ名を指定します。 SASL を有効にするには、ユーザー名とパスワードを両方指定する必要があります。
memcached.store_retry_count
int store コマンドが失敗した場合に、行うリトライの回数を指定します。 この仕組みを使うと、 複数サーバー構成で set/increment/decrement/setMulti 操作が失敗した場合に、 セカンダリサーバーへ透過的なフェイルオーバーを行うことが出来ます。 デフォルト値は 2
です。