我有一个简单的问题要问那些更熟悉 Redis 内部结构并且可能知道答案的人。
我使用 socket.io 并存储了 sessionID - socket(s) 的映射。除此之外,我使用 SET 命令来存储空值以指示用户已连接(如果没有套接字与 sessionID 关联)。为了考虑页面重新加载,DEL 命令在超时后执行。这导致我没有活动套接字,但在线状态仍然在 Redis 中设置的情况。
这意味着如果用户使用单个选项卡,则每次重新加载页面都意味着执行 SET 命令。我想知道的是 SETNX 是否会在这里性能更高?基本上,由 SETNX 执行的检查会比使用 SET 再次设置值更快吗?假设该值将在 99.99% 的情况下存在。
我的猜测是它应该更快,但也许有些我不知道。那么谁能证实我的猜测或解释我为什么 SET 可能仍然更快?
一般来说,SETNX可以稍微快一点,因为它有时不会设置值。但是,在您的用例中,考虑到值的大小(空字符串),性能差异可能可以忽略不计。测试它是确定的:)
| 归档时间: |
|
| 查看次数: |
1897 次 |
| 最近记录: |