如何在SPRING-DATA-REDIS中使用zrangeByScore get结果

时间:2013-11-15 02:55:49

标签: java spring nosql redis spring-data-redis

我使用ZADD设置值并通过ZRANGBYSCORE获取值

redis 127.0.0.1:6379> ZADD mytest 1 "one" 2 "two" 3 "three"
(integer) 3
redis 127.0.0.1:6379> ZRANGEBYSCORE mytest 1 3
1) "one"
2) "two"
3) "three"

然后,我使用SPRING-DATA-REDIS API设置值

redisTemplate.opsForZSet().add("mytest", "four", 4.0);

但是,我使用SPRING-DATA-REDIS API获得价值并且返回非我期望的值(我期望是[一,二,三,四])

Set<Object> result = redisTemplate.opsForZSet().rangeByScore("mytest", 1.0, 4.0);
System.out.println(result);
[four]

并通过redis-cli检查

redis 127.0.0.1:6379> ZRANGEBYSCORE mytest 1 4
1) "one"
2) "two"
3) "three"

为什么数据似乎没有同步?

任何帮助都非常赞赏!

1 个答案:

答案 0 :(得分:0)

<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"
        p:connection-factory-ref="jedisConnectionFactory">
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property>
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property> 
    </bean>

我找到了一种方法,改变redisTemplate设置就好了〜

:)