思考停止Macportsでmemcached あとPythonから叩く
ぶっちゃけ作業をはじめるまで memcached が何か知らなかったのだが、なんとなくインメモリデータベース的な何かだと思っていた。テンポラリーなデータ置き場。
いまでも理解が微妙なところなのでmemcachedを知り尽くす:第1回 memcachedの基本|gihyo.jp … 技術評論社をあとで読んどく。
Macでmemcachedを使う。今BOTを作っていて本番環境はUbuntuなのだが、Macでもごにょごにょするために portsからインストールしてみた。
とはいっても、調べると面倒臭い手順を公開してるばかりのページがヒットして、カッとして sudo port install memcached したら通ってしまった。(悪い癖なのでそのうちどうにかしないと)
起動時の登録は以下を参考に。
ベイエリア情報局: Mac OS X に memcached をインストールして launchd で自動起動するようにした
~/Library/launchAgents/memcached.plist として以下を保存
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"><dict> <key>Label</key> <string>memcached</string> <key>OnDemand</key> <false/> <key>ProgramArguments</key> <array> <string>/opt/memcached/bin/memcached</string> <string>-m 32</string> </array> </dict> </plist>
% launchctl load -w Library/LaunchAgents/memcached.plist
% launchctl list
memcached
% ps x|grep memcached
6286 ?? Ss 0:00.07 /opt/memcached/bin/memcached -m 32
Pythonから使いたかったので Python-memcached を easy_install で導入
sudo easy_install memcache
python-memcached: Python API for memcached
とりあえずハローワールド的な
import memcache mc = memcache.Client(['localhost:11211']) mc.flush_all() # データをリセット(全部消える) mc.set('key', 'value') # 'key'に'value'をセット mc.get('key') # 'key'の値を取り出す
参考:pythonでmemcachedを使ってみた | Ken's blog
当たり前ですが この後にflush_all()すると'key'の値は消えます