概要
- 前回記事の続き
- AppEngineからCloudMemoryStore(memcached)に接続する
Cloud Memorystore for Memcached
- インスタンスを作成

- ノードあたりのメモリは変更不可なので慎重に決める

- VPCを選択

ファイアウォール
- memcached用ファイアウォールルールを作成
設定


Compute Engine
設定
- 先程作成したmemcached用ファイアウォールルールをGCEインスタンスに設定

- telnetコマンドをインストール
$ sudo apt-get install inetutils-telnet
確認
- GCEインスタンスからコマンドラインで疎通確認
$ telnet <memcache_ip> 11211
:
> set test-key 0 0 8
> ezaqiita
STORED
> get test-key
VALUE test-key 0 8
ezaqiita
END
quit
- 補足:入力値について
- 1つ目の値:データ圧縮 0:非圧縮,1:圧縮
- 2つ目の値:データ保持期間 0は有効期限無
- 3つ目の値:データバイト数 上記は8バイトのデータ
memcache詳細については以前の記事を参考
AppEngine
設定
- 接続確認用コードをindex.phpに追記
index.php
:
# 以下をindex.phpに追記
$memcache = new Memcached();
$memcache->addServer('<memcached server private ip>', 11211);
$data = 'memcached for abc';
$memcache->set('key', $data, 1000);
echo $get_data = $memcache->get('key');
echo '<br>';
- php用memcacheライブラリを設定
php.ini
$ vi /<deploy_dir>/php.ini
extension=memcached.so
確認
- デプロイ
$ gcloud app deploy
$ gcloud app browse -s production-service
- ブラウザで疎通確認

APCu
- PHP専用キャッシュAPCuを使用したい場合は以前の記事を参考