首页 > 解决方案 > 使用 JSON 的原子 Redis 操作

问题描述

我想在 Redis 中存储一个相当复杂的 JSON 对象,但我看不到如何使事务原子化,因为我必须获取、编辑然后设置。在进行编辑时,可能会在其他地方调用另一个 get,这最终会覆盖我的数据。

我看过管道,但它们似乎没有用,因为命令同时执行?无法在设置之前解析/编辑?

在此过程中,我也找不到锁定文档/哈希的方法。

标签: pythonnode.jsdatabaseredis

解决方案


您在这里有三个选择:

  1. 使用 Redis事务
WATCH mykey
GET mykey
// change the JSON
MULTI
SET mykey
EXEC
  1. 使用Lua 脚本

  2. 使用支持原子命令的 Redis 模块RedisJSON ,例如:

JSON.ARRINSERT & JSON.NUMINCRBY


推荐阅读