4

我不相信redis会缓存命令的结果,对吗?如果是这样,那么为什么我会在我的 redis 服务器上看到相同查询的以下内容。作为参考,这是在 VM 中运行的 redis。我按照http://redis.io/topics/latency中的描述检查了 smaps 文件,发现操作系统级别没有交换(进程交换中的所有 0kb),但是是否有可能在 VM 中运行 redis 页面内存磁盘和返回?或者...这些结果是否是由于对常用命令进行了某种 redis 优化而导致的?

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)
4

1 回答 1

0

CPU缓存!很有趣,更多阅读可以在这里(以及其他地方)

于 2013-05-16T06:19:16.407 回答