为什么RedisTemplate与jedis在数据库索引不同时为每个操作执行“select”命令0

时间:2017-12-02 07:31:30

标签: spring-data-redis

最近,我在我的项目中使用RedisTemplate与jedis连接工厂来从redis获取值。我发现当数据库索引与0不同时,RedisTemplate将在操作之前和之后执行“select”命令。

我使用的演示代码非常基本

    for (int i = 0; i < 2; i++) {
        String value = redisTemplate.opsForValue().get("hello");
        System.out.println(value);
    }

redis监视器的样本输出

1512198566.756217 [0 192.168.33.1:59691] "SELECT" "4"
1512198566.757251 [4 192.168.33.1:59691] "GET" "hello"
1512198566.758367 [4 192.168.33.1:59691] "SELECT" "0"
1512198566.761262 [0 192.168.33.1:59691] "SELECT" "4"
1512198566.763201 [4 192.168.33.1:59691] "GET" "hello"
1512198566.764959 [4 192.168.33.1:59691] "SELECT" "0"

然而JedisPool没有类似的过程

1512198527.317110 [0 192.168.33.1:59676] "SELECT" "4"
1512198527.325005 [4 192.168.33.1:59676] "GET" "hello"
1512198527.334189 [4 192.168.33.1:59676] "GET" "hello"

RedisTemplate执行额外“选择”的好处是什么,频繁的“选择”命令会降低客户端性能吗?

0 个答案:

没有答案