Как отсортировать хэш в Redis по его значению

Я новичок в этом Redis, поэтому, пожалуйста, помогите мне! Я храню значения в Redis с помощью этой команды,

client.hmset('top_trend', array[0], 0);
client.expire('top_trend', 86400, redis.print);

и я увеличу значение "0", если попытаюсь снова установить тот же ключ с помощью этой команды,

if(client.hexists('top_trend', array[0]) == true){
   client.hincrby('top_trend', array[0] , 1, redis.print);
}

Это сохранит мой массив данных в redis, например: key = "top_trend"

"tamil"
"0"
"english"
"0"
"hindi"
"0"

если тамиль уже доступен для ключа "top_trend", он будет увеличивать свое значение следующим образом:

"tamil"
"1"
"english" (//if english is already 3 times available)
"4"

Теперь мне нужно отсортировать значения: в порядке убывания и получить значения в отсортированном порядке в узле js. Как этого добиться.?? Я попытался отсортировать key_value по объекту _*-> команду объекта, как это. Но это не сработает. Помоги мне.

2 ответа

Решение

Чтобы ответить на ваш вопрос - Redis не предоставляет способ извлечения содержимого хэша, упорядоченного по значению. Что вы можете сделать, при условии, что хэш имеет малый размер, это извлечь его полностью, а затем отсортировать в приложении (Node.js).

Кроме того, к вашему сведению, кажется, что ваш код несколько лишний - HINCRBY инициализирует поле, даже если оно не существует, поэтому:

127.0.0.1:6379> EXISTS foo
(integer) 0
127.0.0.1:6379> HINCRBY foo bar 1
(integer) 1
127.0.0.1:6379> HGETALL foo
1) "bar"
2) "1"

Это означает, что если у вас нет веских причин для инициализации и проверки существования "вручную", вы можете просто удалить этот код.

Если упорядочение по некоторому значению является функцией, необходимой для вашей реализации, вы можете подумать о том, чтобы сделать это с помощью отдельного ключа Redis. Вы можете легко использовать Сортированные Наборы для этого, увеличивая счет с ZINCRBY, Более того, таким образом, вы также можете использовать лексикографическое упорядочение сохраненных значений.

Другие вопросы по тегам