Как я могу использовать результат rangeByScore с помощью 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);

но я получаю значение, используя API SPRING-DATA-REDIS, и возвращаемое значение, которого я не ожидаю (я ожидаю, что [один, два, три, четыре])

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"

Почему данные не синхронизированы?

Любая помощь очень ценится!


person KKL    schedule 15.11.2013    source источник


Ответы (1)


<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 таким образом, это будет нормально ~

:)

person KKL    schedule 15.11.2013