1

我使用 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 获取值并返回不是我期望的值(我期望是 [一、二、三、四])</p>

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"

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

任何帮助都非常感谢!

4

1 回答 1

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设置就可以了~

:)

于 2013-11-15T08:19:12.723 回答