Redis:如果存在密钥,则引发错误

Redis:如果存在密钥,则引发错误,redis,amazon-elasticache,Redis,Amazon Elasticache,我正在开发一个应用程序,在其中我在Redis中放置了一些键。如果给定的密钥存在,Redis将引发错误 [由于并发问题,我无法读取密钥然后更新Redis。我也无法编写关键代码。] 可以用这种方式配置Redis吗?不能将Redis配置为引发错误,但您可以使用SETNX命令设置新密钥,使其在已经存在的情况下不会发生任何事情。 如果键不存在并且我们设置了它的值,那么SETNX的返回值是1;如果键存在并且我们无法设置新值,那么SETNX的返回值是0 例如: 127.0.0.1:6379> SETNX

我正在开发一个应用程序,在其中我在Redis中放置了一些键。如果给定的密钥存在,Redis将引发错误

[由于并发问题,我无法读取密钥然后更新Redis。我也无法编写关键代码。]


可以用这种方式配置Redis吗?

不能将Redis配置为引发错误,但您可以使用SETNX命令设置新密钥,使其在已经存在的情况下不会发生任何事情。 如果键不存在并且我们设置了它的值,那么SETNX的返回值是1;如果键存在并且我们无法设置新值,那么SETNX的返回值是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,并且键中的值没有更改