Loading [MathJax]/extensions/tex2jax.js

2011-07-11

GAEでMemcacheを利用する

Datastoreに頻繁にアクセスすると、システムの動作が遅くなったりサーバの負荷がかかってくるようなので、そんな時はMemcacheを用いるとよい。Memcacheは、いわゆるハッシュテーブル(マップ)みたいなもの。キーとバリューの組を格納していくだけ。GAEではデータを共有できるようになっているのが特徴だが、いろいろなシステムで使っているとキーの衝突も起こりうる。そこで、NameSpaceで区別できるようになっている。
  1. //TEST1というネームスペースで設定  
  2. MemcacheService memcache = MemcacheServiceFactory.getMemcacheService("TEST1");  
  3. memcache.put("name""おち");  
  4. String result = memcache.get("name");  
基本はこれだけ。GAEを使っているとCPUの負荷等が気になるが、Memcacheを利用するとその減少に効果があるらしい。Datastoreとの使い分けについては

  • 頻繁にアクセスするデータはDatastoreを何回も見に行くのではなく、Memchacheの値を取り出すようにする
  • Memcacheに値がない場合は、DatastoreにアクセスしMamcacheに保存しておく
というのが無難でしょう。Memcacheはあくまでも一時的なデータ保存領域なので。ただ、この使い分けをどうするかは、設計者の腕の見せどころだと思います。

なお、JCacheというJavaの標準の方も利用できるようです。このあたりの使い分けもちょっと調べてみます。


0 件のコメント:

コメントを投稿