我不明白 ADD 和 SET 之间的区别有什么线索吗?似乎 ADD 包含 SET 或者如果存在某些东西并且 SET 只是覆盖,则 ADD 返回 false 。谢谢!
编辑:我的具体问题是,“你什么时候使用添加而不是设置或设置而不是添加?”
wom*_*ble 22
您几乎已经得到了第一个问题的答案:目的ADD
是仅在键不存在时才起作用,同时SET
更新值,而不管它是否已经存在。如果您熟悉 SQL,它(大致)就像INSERT
查询 ( ADD
) 和UPDATE
( SET
)之间的区别。
关于您的附录问题,您将使用适合您目的的任何一个。我会说这SET
将是更常见的操作,因为更常见的是您只想说“我希望密钥foo
具有 value bar
,我不在乎它是否已经在那里”。但是,在某些情况下(不太频繁)有必要知道某个键不在缓存中。
想到什么时候ADD
合适的一个例子是将会话存储在内存缓存中(顺便说一下,我不推荐这样做)——如果你随机生成你的会话 ID(或通过散列),你不会想要使用与现有会话相同的密钥创建新会话,因为这将授予一个用户访问另一个用户数据的权限。在这种情况下,当您创建会话时,您将使用ADD
,如果它返回失败状态,您将需要生成一个新的会话 ID 并重试。当然,更新会话将SET
在用户通过您的应用程序工作时使用。
归档时间: |
|
查看次数: |
14851 次 |
最近记录: |