我正在编写这个应用程序,我将在其中使用 Redis 作为各种数据库来存储聊天消息。每当我需要设置任何给定的键以确保它不存在时,我正在考虑使用 SETNX。
但是应用程序需要非常灵敏,因为它是实时的。我想知道的是执行 SETNX 操作是否成本高昂,特别是如果有大量客户端执行该操作。
注意:我通读了这个文档http://redis.io/topics/data-types-intro,看起来在 SETNX 实现中有点退出,但是我仍然不确定它的成本有多大。谢谢。
我正在编写这个应用程序,我将在其中使用 Redis 作为各种数据库来存储聊天消息。每当我需要设置任何给定的键以确保它不存在时,我正在考虑使用 SETNX。
但是应用程序需要非常灵敏,因为它是实时的。我想知道的是执行 SETNX 操作是否成本高昂,特别是如果有大量客户端执行该操作。
注意:我通读了这个文档http://redis.io/topics/data-types-intro,看起来在 SETNX 实现中有点退出,但是我仍然不确定它的成本有多大。谢谢。
我想知道的是执行 SETNX 操作是否成本高昂,特别是如果有大量客户端执行该操作。
关于速度 - 因为 redis 是基于内存的,所以它会“非常快”。绝对比您首先尝试获取密钥以确定它是否存在并设置密钥(如果不存在)的情况更快,因为您将执行两次网络往返(获取和设置)而不是一次(setnx)。
关于大量客户端 - redis 是单线程的,并且在命令到达时按顺序执行命令,并且它能够处理许多同时连接的客户端(请参阅文档)。