Symfoware

Symfowareについての考察blog

Redisでluaスクリプトを実行する(redis-py使用)

Redis 2.6以降から、luaスクリプトを実行できるようになったみたいです。
redis-pyを使用して試してみます。


サンプル



luaスクリプトで「redis」という暗黙オブジェクトが使えます。
これでデータの操作が行えます。

Pythonのプログラムから渡した値は、
「KEYS[num]」「ARGV[num]」というキーワードで取り出せる模様。


  1. # -*- coding:utf-8 -*-
  2. import redis
  3. # redis client準備
  4. r = redis.Redis(host='192.168.1.101', port=6379, db=0)
  5. # 適当に値を登録
  6. r.set('test1', 'test_value_1')
  7. r.set('test2', 'test_value_2')
  8. # luaスクリプト
  9. lua = """
  10. local value_1 = redis.call('GET', KEYS[1])
  11. local value_2 = redis.call('GET', KEYS[2])
  12. return ARGV[1] .. ':' .. value_1 .. ':' .. value_2
  13. """
  14. # luaスクリプトを登録
  15. multiply = r.register_script(lua)
  16. # スクリプト実行
  17. ret = multiply(keys=['test1', 'test2'], args=['arg_value'])
  18. # 結果を表示
  19. print ret




実行してみると、こんな結果が表示されました。


$ python sample.py
arg_value:test_value_1:test_value_2



関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2014/07/31(木) 23:08:25|
  2. Redis
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Redis hashの値でソートする(luaスクリプト使用) | ホーム | Redis 2.4系 hashの値でソートする(sortコマンド)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1444-852b5919
この記事にトラックバックする(FC2ブログユーザー)