pgmemcacheは、memcachedへのインターフェースを提供するPostgreSQLユーザー定義関数(API)のセットです。 pgmemcacheの前提条件では、libmemcachedを使用することをお勧めしますが、memcachedを一緒にインストールすることもお勧めします。私のプレゼンテーションは、pgmemcacheAPIを使用したインストール/キャッシュ/モニタリングで構成されています。開発者でもハッカーでもないので:)、私の実装方法は非常に単純な方法です。
ポイント:
- キー/値の手段に基づいて値をキャッシュに格納します。主キー/一意キーを使用してテーブルを保持することをお勧めします。
- データの冗長性なし– memcachedがダウンしたり、スペースが不足したりすると、新しいレコードと更新が失われます。
- すべてのmemcachedコマンドをサポートします(set / get(single / multi)/ delete / replace / incr / stats)
- データをmemcachedに保持した後、バックエンドからテーブルを削除しても、memcachedはエラーをスローしません。それをどのように維持するかはすべてあなたの管理です。
- データを反復処理したり、保存されているキーを判別したりすることはできません。
- ユーザーがプレイ中または接続している間は、memcachedサーバーを停止したり、新しいサーバーをプールに追加したりすることはできません。
- 何らかの理由でバックグラウンド更新プロセスが停止した場合、更新は行われず、memcachedサーバーがいっぱいになる可能性があります。
- すべてのPostgreSQLバックエンドは、データにアクセスする前にmemcachedポートにバインドする必要があります。
- Memcachedはデフォルトのポート11211で実行されます
前提条件:
- PostgreSQL8.4。以上
- libevent
- memcached
- libmemcached
- pgmemcache
- 監視ツール(監視ツール、damemtopなど)
インストール:
ステップ1.(libevent)
pgmemcacheを構成する場合、Libevent APIは重要です。インストールの最初のステップとして、ライブラリを使用することをお勧めします。それでは、デフォルトの場所で構成するlibeventライブラリから始めましょう。
Download link for libevent:
http://www.monkey.org/~provos/libevent-2.0.12-stable.tar.gz
tar -xvf libevent-2.0.12-stable.tar.gz
cd libevent-2.0.12-stable
./configure
make
make install
ステップ2(memcached)
libeventを有効にしてmemcachedをインストールします。
Download link for memcached:
http://memcached.googlecode.com/files/memcached-1.4.6.tar.gz
cd /usr/local/src/memcached-1.4.6
------on 32-bit
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-libevent=/usr/lib
------on 64-bit
export LD_LIBRARY_PATH=/usr/lib64:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
./configure --prefix=/opt/PostgreSQL/9.0/bin/ --with-libevent=/usr/lib64
make
make install
ステップ3.(libmemcached)
pgmemcacheはlibmemcachedの上に構築されています。 Libmemcachedはmemcacheバイナリの場所を探すため、先に進む前にmemcachedバイナリへのパスを設定します。
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
Download link:
http://launchpad.net/libmemcached/1.0/0.50/+download/libmemcached-0.50.tar.gz
cd libmemcached-0.50
./configure
make
make install
ステップ4(pgmemcache)
pgmemcache APIは、データのキャッシュ/取得のようにmemcachedとやり取りするのに役立ちます。
Download link:
http://pgfoundry.org/frs/download.php/3018/pgmemcache_2.0.6.tar.bz2
cd pgmemcache
PATH=/opt/PostgreSQL/9.0/bin:$PATH make USE_PGXS=1 install
or
make
make install
インストールすると、PG contribの場所でmemcacheとやり取りするために、すべてのAPIを含むpgmemcache.sqlファイルが作成されます。 pgmemcache APIを作成するには、すべてのデータベースでpgmemcache.sqlファイルを実行するだけです。
psql -p PGPORT -d PGDATABASE -f /opt/PostgreSQL/9.0/share/postgresql/contrib/pgmemcache.sql
pgmemcache APIのリスト:
注: .sqlファイルの実行中に、「ISTFATAL:ライブラリを読み込めませんでした」/opt/PostgreSQL/9.0/lib/postgresql/pgmemcache.soのようなエラーが発生する場合があります。ディレクトリ"。つまり、PGインスタンスは新しく作成されたライブラリでロードされませんでした。解決し、PATHとLD_LIBRARY_PATHを設定し、インスタンスを再起動してライブラリを認識します。
Eg:-
export PATH=/opt/PostgreSQL/9.0/bin/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib:/opt/PostgreSQL/9.0/lib:$LD_LIBRARY_PATH
$pg_ctl -D $PGDATA restart
pgmemcacheをデフォルトでPGインスタンスにロードする場合は、postgresql.confファイルを編集し、次のパラメーターを変更してクラスターを再起動します。
shared_preload_libraries='pgmemcache'
custom_variable_classes='pgmemcache'
構成:
ステップ1。
データをキャッシュするには、最初にメモリを初期化する必要があります。メモリが割り当てられると、後でPGバックエンドがデータをバインドしてキャッシュにプッシュする責任を負います。ここでは、デフォルトポート11211で512MBのローカルホストでmemcacheを開始しました。-dはデーモンを開始することを意味します。私の演習はすべてローカルホストで行われます。
$./memcached -d -m 512 -u postgres -l localhost -p 11211
注:キャッシュからデータを取得するには、すべてのPostgreSQLバックエンドが最初にデータをバインドして取得する必要があります。
ステップ2。
インスタンスを実行中のmemcacheポートにバインドします。バインド後、memcached統計をチェックアウトします。
ステップ3。
次に、データをmemcachedにキャッシュします。Memcachedは、キー/値を使用してデータをメモリに常駐させます。テーブルにプライマリ/一意キーがあることを確認して、取得が簡単になるようにします。前述のように、値を保持してそれらにアクセスするための非常に優れたAPIがあります。私の例では、memcache_set()を使用して値を保持し、memcache_get()を使用してデータを取得します。
memcachedに値を設定したら、バックエンドをmemcachedにバインドする責任があり、pgmemcacheAPIを使用してデータにアクセスできます。各Postgresバックエンドは、アクセスする前にバインドする必要があります。以下の例をご覧ください。
キャッシュからのデータの取得
監視
Linuxに精通している場合は、memcachedメモリに関する最大の情報を引き出すことができますが、monitoring-tools、damemtopなどのmemcachedソースパックに付属しているツールはほとんどありません。 memcacheを監視するためにmonitoring-toolsユーティリティを使用しています。
usage:-
memcached-tool localhost display
memcached-tool localhost dump
memcached-tool localhost stats | grep bytes
例:
pgmemcacheをセットアップし、基本を理解するための私の側からの小さな努力。お役に立てば幸いです。高く評価されているコメントや提案を投稿し続けてください。