Redis设置密钥,val仅当val与前一个用于并发的密钥匹配时



如何做到这一点?使用Jedis和Java。

我现在正在使用hset,但这并不重要。

必须发送lua代码才能实现这一点吗?杰迪斯是怎么做到的?

这里有一个使用LUA的HSET命令的Check-n-set。

Jedis jedis;
String key, field, oldValueToCheck, newValueToSet;
jedis.eval("if redis.call('HGET', KEYS[1], ARGV[1]) == ARGV[3]"
+ " then return redis.call('HSET', KEYS[1], ARGV[1], ARGV[2])"
+ " else return 'NA' end", 1, key, field, newValueToSet, oldValueToCheck);

最新更新