为什么在Redis上连续运行相同的查询会产生越来越快的结果?
我不相信redis会缓存命令的结果,对吗?如果是这样,那么为什么我会在我的redis服务器上看到相同查询的以下内容。作为参考,这是运行在VM中的redis。我按照中所述检查了smaps文件,发现在操作系统级别上没有交换(进程的交换都是0kb),但在VM中运行redis是否可能会将内存分页到磁盘并返回?或这些结果是由于对常用运行命令进行某种redis优化而产生的吗为什么在Redis上连续运行相同的查询会产生越来越快的结果?,redis,Redis,我不相信redis会缓存命令的结果,对吗?如果是这样,那么为什么我会在我的redis服务器上看到相同查询的以下内容。作为参考,这是运行在VM中的redis。我按照中所述检查了smaps文件,发现在操作系统级别上没有交换(进程的交换都是0kb),但在VM中运行redis是否可能会将内存分页到磁盘并返回?或这些结果是由于对常用运行命令进行某种redis优化而产生的吗 redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 Publis
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(4.46s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(3.77s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(0.92s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(0.64s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(0.67s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(0.73s)
redis 127.0.0.1:6379[4]> scard ClientId:1637
(integer) 796529
redis 127.0.0.1:6379[4]> scard PublisherId:1
(integer) 311092
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(1.88s)
redis 127.0.0.1:6379[4]> sinterstore testdb ClientId:1637 PublisherId:1
(integer) 240001
(0.69s)
CPU缓存!非常有趣,有更多的阅读资料(除其他地方外)答案如下: