我对部署在我的 AWS EC2 Micro 实例上的 Redis 实例做了一个有趣的观察(测试环境)
我正在测量必须命中 Redis 的各种操作的执行时间。总而言之,执行时间(平均)如下所示:
Jedis -> Redis Connection is 63 milliseconds
Read of top Element in a list using lrange(<listname>,0,1) is 44 milliseconds
Read of entire Elements of set is 5ms
Iteration over entire Set space is 60ms( Set space approx 130 elements)
Iteration over subset of elements of set is 5ms ( Subset element size is 5)
现在让我担心的是前两个操作(连接和提取列表中的顶部元素)。
对于连接,代码如下所示:
Jedis redis= new Jedis("localhost");
并用于提取列表中的顶部元素:
String currentDate = redis.lrange(holderDate,0,1).get(0);
现在来自 Redislrange
命令文档:
时间复杂度:O(S+N),其中 S 是起始偏移量,N 是指定范围内的元素数。
现在从我的代码中,S 为 0,N 为 1。
那么我的问题是:是什么导致这些有些微不足道的操作的执行时间。
EC2 微型实例的特性是否会对这些操作的性能产生不利影响。
Redis 部署的一些关键信息:
redis_version:2.4.10
used_memory:2869280
used_memory_human:2.74M
used_memory_rss:4231168
used_memory_peak:2869480
used_memory_peak_human:2.74M
mem_fragmentation_ratio:1.47
提前致谢。