#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 хэшей (больше похожих на строки) для продукта..