我正在开发一个应用程序,我在 Redis 中放置了一些键。如果给定的键存在,Redis 应该引发错误。
[由于并发问题,我无法读取密钥,然后更新 Redis。我也不能写一段关键代码。]
Redis 可以这样配置吗?
Redis 不能配置为引发错误,但您可以使用 SETNX 命令设置新密钥,使其如果它已存在,则不会发生任何操作。如果键不存在并且我们设置了其值,则 SETNX 的返回值为 1,如果它存在且我们无法设置新值,则返回值为 0。
例如:
127.0.0.1:6379> SETNX foo bar
(integer) 1
127.0.0.1:6379> get foo
"bar"
127.0.0.1:6379> SETNX foo baz
(integer) 0
127.0.0.1:6379> get foo
"bar"
请注意,再次调用 SETNX 将返回 0,并且键中的值未更改。