php.ini の設定により動作が変化します。
名前 | デフォルト | 変更可能 | 変更履歴 |
---|---|---|---|
memcached.sess_locking | On | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.sess_consistent_hash | On | PHP_INI_ALL | memcached 2.1.0 以降で利用可能です。memcached 3.0.0 以降は、デフォルト値はOnです。 |
memcached.sess_binary | Off | PHP_INI_ALL | memcached 2.0.0 以降で利用可能です。memcached 3.0.0 以降は、memcached.sess_binary_protocol に置き換えられました。 |
memcached.sess_lock_wait | 150000 | PHP_INI_ALL | memcached 0.1.0 以降で利用可能ですが、memcached 3.0.0 以降では削除されています。 |
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL | memcached 2.1.0 以降で利用可能です。 |
memcached.sess_randomize_replica_read | Off | PHP_INI_ALL | memcached 2.1.0 以降で利用可能です。 |
memcached.sess_remove_failed | On | PHP_INI_ALL | memcached 2.1.0 以降で利用可能です。memcached 3.0.0 以降は、memcached.sess_remove_failed_servers に置き換えられました。 |
memcached.compression_type | fastlz | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.compression_factor | 1.3 | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.compression_threshold | 2000 | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.serializer | igbinary | PHP_INI_ALL | memcached 0.1.0 以降で利用可能です。 |
memcached.use_sasl | Off | PHP_INI_ALL | memcached 2.2.0 以降で利用可能ですが、memcached 3.0.0 以降では削除されています。 |
memcached.default_binary_protocol | Off | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.default_connect_timeout | 0 | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.default_consistent_hash | Off | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_binary_protocol | On | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。memcached.sess_binary を置き換えるものです。 |
memcached.sess_connect_timeout | 1000 | PHP_INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_consistent_hash_type | ketama | PHP_INI_ALL | memcached 3.1.0 以降で利用可能です。 |
memcached.sess_lock_expire | 0 | PHP_INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_lock_retries | 5 | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_lock_wait_max | 150 | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。デフォルト値は memcached 3.1.0 以降は 150 です (それより前のバージョンでは 2000 でした)。 |
memcached.sess_lock_wait_min | 150 | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。デフォルト値は memcached 3.1.0 以降は 150 です (それより前のバージョンでは 1000 でした)。 |
memcached.sess_persistent | Off | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_remove_failed_servers | Off | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。memcached.sess_remove_failed を置き換えるものです。 |
memcached.sess_server_failure_limit | 0 | PHP_INI_ALL | memcached 3.0.0 以降で利用可能です。 |
memcached.sess_sasl_password | null | PHP_INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.sess_sasl_username | null | PHP_INI_ALL | memcached 2.2.0 以降で利用可能です。 |
memcached.store_retry_count | 2 | PHP_INI_ALL | memcached 2.2.0 以降で利用可能です。 |
以下に設定ディレクティブに関する 簡単な説明を示します。
memcached.sess_locking
bool
セッション単位のロックを使う。設定値として On, Off が使えます。デフォルトは ON です。
memcached.sess_consistent_hash
bool
On にすると、セッション管理に コンシステント・ハッシュ法 (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 が On の場合、 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) もあります。 php-memcached の古いバージョンでは、この設定は memcached.sess_binary と呼ばれていました。 デフォルト値は libmemcached 1.0.18 以降は On です。 それより前のバージョンでは Off になっています。
memcached.sess_connect_timeout
int
memcached の接続タイムアウト値を指定します。 ノンブロッキングモードの場合、この値は ソケット接続中のタイムアウトの値をミリ秒単位で変更します。 -1 を指定すると、タイムアウトしません。
memcached.sess_consistent_hash_type
string
Memcached のセッション管理で使う、コンシステント・ハッシュ法を指定します。 'ketama' を指定すると、セッション管理にコンシステント・ハッシュ(libketama) を使います。 これは php-memcached 3.x のデフォルトです。 'ketama_weighted' を指定すると、重み付きのコンシステント・ハッシュ(libketama) をセッション管理に使います。 これは php-memcached 2.x のデフォルトです。 デフォルトは "ketama" です。
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_min 待ってリトライします。 その後リトライを行うたびに、memcached.sess_lock_wait_max に達するまで、 現在のリトライ時間を2倍して待ちます。 その後は、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 です。