【发布时间】:2016-12-10 03:43:53
【问题描述】:
我在 redis 中有一个哈希值,其中一个字段的值是字符串化数组,每当用户注册一个事件时,
- 从 redis 中获取这个字符串化数组
- 在后端解析并在数组中添加用户的用户名
- 对数组进行字符串化并存储回散列
如果两个用户注册的时间足够近,则可能存在竞争条件。
竞争条件可能是这样的,两个用户都从 redis 获得相同的字符串化数组,然后他们修改,并且只会发生一次更新,因为一个会被另一个覆盖。
有没有办法像 SQL 中的事务一样防止这种竞争条件。我读过multi,但它不允许在服务器上的命令之间进行计算。
或者存储字符串化数组并存储为哈希字段是一个坏主意,我应该在 redis 上使用普通列表。
【问题讨论】:
-
你的后端语言是什么?
标签: redis race-condition