我使用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获取值,返回值不是我期望的(我期望是[1、2、3、4])
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"
为什么数据看起来不同步?
任何帮助都非常感谢!
最佳答案
<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设置就行了~
:)