2014-10-27 104 views
0

我一直在阅读Redis的文档,the example they have for GETSET is just "Hello World"。我想不出一个我可以使用GETSET的具体情况,但是通过推送或插入列表并不能更好地处理它。什么是一些特定的用例,当旧的值必须被原子检索,但不存储?原子GETSET操作有哪些用例?

+0

你可以添加一个指向你在问题中提到的文档的链接吗? – 2014-10-27 10:38:59

+0

我添加了链接 – Kaan 2014-10-27 10:46:02

回答

0

该文档介绍了原子计数器的获取和重置模式,但通常此命令适用于您希望在以原子方式获取上一个值时设置的(字符串)值的任何情况。就我个人而言,我没有看到广泛使用的命令,因此我无法为其他用例作证。

列表方法可以用于类似的效果,但是当您弹出某个元素时,您将更改列表本身 - 旧值不再存在,并且可能会有其他操作(除非使用MULTI/EXEC)你推动新的价值。

+1

在现实世界中,GETSET可以用作手动过期管理基于SETNX的锁定(http://redis.io/commands/setnx)的一部分,或者用于具有任意时间步骤的重置计数器。例如,从上次访问发生X事件。所以你可以捕捉计数器的值并将其重置为一个命令。 – misterion 2014-10-29 07:28:35