PHPのお勉強!

PHP TOP

実行時設定

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

Memcached 設定オプション
名前 デフォルト 変更可能 変更履歴
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 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 が 有効な場合、 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

標準的な JSON を使います。このシリアライザは高速でコンパクトですが、UTF-8 でエンコードされたデータでしか動作しませんし、完全なシリアライズを実装していません。詳細は JSON拡張モジュール を参照ください。 memcached 0.2.0 以降で利用可能です。

json_array

json と同じですが、シリアライズしたデータを配列に入れます。 memcached 2.0.0 以降で利用可能です。

php

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

igbinary

バイナリデータのシリアライザです。 memcached 0.1.4 以降で利用可能です。

msgpack

言語に依存しない、バイナリデータのシリアライザです。 memcached 2.2.0 以降で利用可能です。

デフォルトは 利用可能な場合 igbinary です。 igbinary が利用できない場合は msgpack が(利用可能な場合のみ) デフォルトになります。 いずれも利用できない場合は、php がデフォルトになります。