zl程序教程

您现在的位置是:首页 >  .Net

当前栏目

【地铁上的Redis与C#】聊聊单指令操作和多指令操作如何选择

2023-02-19 12:24:01 时间

我们在前面的你文章中学到了set、mset、get、mget 这四个指令,这四个指令中有两个单指令set和get,有两个多指令mset和mget。所谓的单指令可以简单地理解为告诉Redis服务器要干某个工作,而多指令就是告诉Redis服务器要干某些工作。那么这里就遇到了一个问题,我们什么时候用单指令什么时候用多指令呢?我们以set/mset为例,来讲一下。 向Redis服务器发送新增和修改命令其实是由三个步骤:发送执行返回。图示如下:

应用服务向Redis服务发送命令和数据,Redis在接收到命令和数据后执行相应的操作,操作执行完成后再将执行结果返回给应用服务。这里我们假每个步骤的执行时间都是2毫秒,那么如果我们使用set来发送数据的话,三个步骤总共用时2+2+2=6毫秒,当我们需要发送多条数据,例如1000条,那么总用时就是(2+2+2)1000=6000毫秒【这里只是举例,实际Redis不可能1000条数据用时这么大】。那么如果使用mset一次性将1000条数据都全部发送给Redis,总用时为2+21000+2=1004毫秒。由此可以看出,在进行大量数据操作的情况下最好使用多指令进行操作。但这也仅仅是个建议,我们还需要考虑到带宽问题、应用服务器和Redis服务器的性能。