php+redis+lua
发两个php+redis+lua的例子。
一、直接在redis上运行命令demo
1 | eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second |
- eval 命令代表后面接的是lua脚本,需要redis使用lua解析器;
- 2 代表接下来两个参数为为KEY的参数,即为 key1 key2;
- first、second代表ARGV的附加参数;
二、PHP的demo
1 | $lua = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"; |
- eval(lua脚本字符串,参数数组,前几个为key参数);
1、一次性获取所有的hash结构的所有值
1 | $lua = "local ret={}; for i,v in pairs(KEYS) do ret[i]=redis.call('hgetall', v) end; return ret"; |
2、如果值一样则删除
1 | if redis.call("get",KEYS[1]) == ARGV[1] then |