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

时间:2017-10-30 12:32:22

标签: redis amazon-elasticache

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

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

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

1 个答案:

答案 0 :(得分:1)

无法将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,并且键中的值不会更改。