lua脚本很简单:
local current = redis.call('GET', KEYS[2])
if current == ARGV[2]
then redis.call('SET', KEYS[1], ARGV[1])
return true
end
return false
下面是java代码:
public static void main(String[] args) {
//
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-redis.xml");
final RedisTemplate<String,String> redisTemplate = applicationContext.
getBean("redisTemplate",RedisTemplate.class);
DefaultRedisScript<Boolean> script=new DefaultRedisScript<>();
ClassPathResource resource=new ClassPathResource("test11.lua");
script.setScriptSource(new ResourceScriptSource(resource));
script.setResultType(Boolean.class);
List<String> keys=new ArrayList();
keys.add("k10");
keys.add("k11");
Boolean result=redisTemplate.execute(script,keys,new String[]{"lala","lala"});
System.out.println(result);
}
redis中数据的存储:
为什么老是返回false????
redis里面value的值需要加上""