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 を使用して値を取得し、予期しない値を返します(私は [one, two, three, four] を期待しています)</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 に答える