赞
踩
Lua是一个轻量、简洁、可扩展的脚本语言
特点:
eval script numkeys key [key ...] arg [arg ...]
KEYS 索引是从1 开始的 ,ARGV也是如此。
127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 feige achao
1) "key1"
2) "key2"
3) "feige"
4) "achao"
代码含义:可以把对应的keys进行填充返回。
127.0.0.1:6379> EVAL "return 1" 2 key1 key2 feige achao
(integer) 1
“return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}” 和 “return 1”
注意:redis默认情况下支持lua脚本,给lua脚本提供了一个redis的对象。这个对象提供call方法,call方法可以调用redis任何的命令
-- 成功返回1、没有设置返回0
-- 如果redis没找到。就直接添加
if redis.call('get',KEYS[1]) == nil then
redis.call('set',KEYS[1],ARGV[1]);
redis.call('expire',KEYS[1],ARGV[2]);
return 1;
end
-- 如果旧值等于新值,不进行操作,如果不相同就执行更新
if redis.call('get',KEYS[1]) == ARGV[1] then
return 0;
else
redis.call
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。