python - 使用 JSON 的原子 Redis 操作
问题描述
我想在 Redis 中存储一个相当复杂的 JSON 对象,但我看不到如何使事务原子化,因为我必须获取、编辑然后设置。在进行编辑时,可能会在其他地方调用另一个 get,这最终会覆盖我的数据。
我看过管道,但它们似乎没有用,因为命令同时执行?无法在设置之前解析/编辑?
在此过程中,我也找不到锁定文档/哈希的方法。
解决方案
您在这里有三个选择:
- 使用 Redis事务:
WATCH mykey
GET mykey
// change the JSON
MULTI
SET mykey
EXEC
使用Lua 脚本:
使用支持原子命令的 Redis 模块RedisJSON ,例如:
推荐阅读
- excel - 使用 Sum 产品的公式计算重叠日期数组中的总小时数
- android - Android Webview net::ERR_UNKNOWN_URL_SCHEME 错误到 Play Store
- linux - 无法使用 SSH 连接 AWS EC2 实例
- javascript - 如何通过 JavaScript/JQuery 更改选定的 DropDownList 项目?
- javascript - Three.js - 关于 StereoCamera 中 eyeSep 的问题
- postgresql - 如何提高 PostgreSQL 的性能?
- python - Python 3 - 如何像直接替换一样执行字符串?
- python - Pandas:如何获得满足条件的最前一行?类似于可变长度移位的东西
- python - 为什么使用 Airflow 插件
- regex - 如何为具有空格和最小最大长度的名称提供正则表达式?