1

怎么能做到这一点?使用 Jedis 和 Java。

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

是否必须发送 lua 代码才能实现这一目标?Jedis是怎么做到的?

4

1 回答 1

1

这是使用 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);
于 2021-06-27T16:50:54.250 回答