我正在使用 jedis,并希望获得一个键的结果并对其进行修改,然后将其存储回去,
String dataToModify = jedis.get(parent_id);
//some modify eg:
modifiedData = dataToModify + "modify";
jedis.set(parent_id, modifiedData);
但后来我意识到,如果有人修改了键值parent_id
中的数据,那么这个get
和set
之间就会发生冲突。 watch-multi-exec
不起作用,因为我需要在交易期间获取 key parent_id
的值。还有其他方法可以原子地执行此操作吗?谢谢
最佳答案
不确定确切的 jedis 语法,但 Redis 的 WATCH/MULTI/EXEC 会让你这样做(即以原子方式运行获取/设置流程)。或者,如果您在服务器端 Lua 脚本中实现您的工作流程,那也可以保证原子性。
关于redis - 有没有办法在redis中以原子方式执行get和set?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24686282/