Проблема с производительностью Redis с LRANGE в большом списке

#python #redis

Вопрос:

У меня есть огромный список элементов (около 10 000 элементов) в моем списке, и мне нужно получать список почти каждую секунду в более чем 20 процессах.

LRANGE mylist 0 -1 занимает слишком много времени. HKEYS должен быть лучше? Есть какие-нибудь альтернативы? Большое спасибо!!!

 127.0.0.1:6379gt; slowlog get 10 1) 1) (integer) 3  2) (integer) 1637075048  3) (integer) 21702  4) 1) "LRANGE"  2) "mylist"  3) "0"  4) "-1"  5) "[::1]:42268"  6) "" 2) 1) (integer) 2  2) (integer) 1637074986  3) (integer) 52563  4) 1) "LRANGE"  2) "mylist"  3) "0"  4) "-1"  5) "[::1]:42268"  6) "" 3) 1) (integer) 1  2) (integer) 1637074923  3) (integer) 20673  4) 1) "LRANGE"  2) "mylist"  3) "0"  4) "-1"  5) "[::1]:42266"  6) "" 4) 1) (integer) 0  2) (integer) 1637074385  3) (integer) 16242  4) 1) "LRANGE"  2) "mylist"  3) "0"  4) "-1"  5) "[::1]:42266"  6) "" 127.0.0.1:6379gt; exit  

Комментарии:

1. да, потому что вы извлекаете «весь» список -gt; взято в память -gt;gt; перемещение по сети. зачем вам нужен весь список ? Каков ваш вариант использования ?

2. Ну, у нас есть огромный набор данных, такой как акции с 10-метровыми хэшами .. и мы пытаемся сохранить ключевые имена для каждого продукта в отдельном списке, а названия продуктов (около 10 тыс.) в другом списке..

3. Нам нужно перебрать все 10 тыс. продуктов и 1000 хэшей (больше похожих на строки) для продукта..