Как отсортированные наборы хранятся в Redis при установке с помощью Spring + Jedis? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть приложение Spring 4.3.9 с spring-data-redis (1.8.7) и jedis (2.9.0).Я могу легко установить и получить ZSET, используя следующий код:

// Commented out -- but below line works fine too
// redisTemplate.opsForZSet().remove("score", userId);
Double scoreInRedis = redisTemplate.opsForZSet().score("score", userId);
redisTemplate.opsForZSet().add("score", userId, (double) score);

Однако, когда я иду в CLI Redis и пытаюсь получить ZSET с помощью клавиши "Score", я ничего не получаю.Поэтому я попробовал следующие команды:

ZCARD "score" <-- this should give number of items wi
(integer) 0
ZSCORE "score" userId <--> I use the actual number here for the userId
(nil)

Другие команды, такие как ZREVRANGE или ZREVRANGEBYSCORE all return (nil).

Я знаю, что мой ключ устанавливается, потому что «информационное пространство ключей» показывает разницу между ключами и истекает ровно 1 - это мой счет ZSET.Если я удаляю свой ZSET из приложения Spring, количество ключей и ключей с истекающим сроком действия совпадают.Итак, я знаю, что мой ключ где-то там.

Чувак, где мой ZSET ??И как я могу получить к нему доступ через CLI?Я могу легко продолжать разработку без доступа через CLI, но я хотел бы понять, где я нахожусь.

1 Ответ

0 голосов
/ 18 октября 2018

Оказывается, я неправильно использовал RedisTemplate<String, Long>.Я переключился на компонент StringRedisTemplate, и теперь мой ключ магически виден в CLI.

Я все еще не уверен, где мой ключ прятался при использовании другого компонента.

Кстати, при работе над этим я следовал некоторым указаниям: https://medium.com/@smoothed9/redis-sorted-sets-with-spring-boot-and-redistemplate-66931e2e1b86

...