Комментарии 16
Как-то мало тут практических советов. Можно сказать вообще нет. Почти все надергано из доки.
Задача 3, pipelining, выполнение нескольких команд одним запросом.
Так удобнее и нагляднее:
$ redis-cli set test:1:pvalue 'test'
OK
Кстати, параметр -n позволяет указать номер используемой базы (коих по умолчанию 16).
Так же из практики использования добавил бы еще удаление ключей по заданной маске. Конечно команда DEL не поддерживает работу с масками, но вопрос решаем через конвеер, xargs и KEY:
$ redis-cli -n 3 KEYS 'test*' | xargs redis-cli -n 3 DEL
(integer) 1
Исправьте:
после установки значения командой EXPIRES
Слишком длинные ключи — плохая идея
А какова всё-таки максимальная длина ключа?
Здесь antirez сообщает о
up to 2^31 bytes, но в официальной документации подтверждения я не смог обнаружить.
Это самая бесполезная статья по Redis, которую я видел. Все более лаконично и понятно есть на сайте в двух кликах от вас.
У меня небольшой вопрос к опытным пользователям Redis. Длина названия ключа сильно влияет на размер базы?
Поясню. Скажем есть тип данных хэш для пользователя с несколькими полями: login, password, sex и т.д.
Тогда для наглядности вот один из способов получить данные
На сколько база будет меньше, если назвать соответствующие поля, скажем, l, p, s?
То есть для каждой записи в базе сохраняется название поля или нет? Стоит оптимизировать названия полей в базе или нет?
Поясню. Скажем есть тип данных хэш для пользователя с несколькими полями: login, password, sex и т.д.
Тогда для наглядности вот один из способов получить данные
hmget user:100, login, password, sex
На сколько база будет меньше, если назвать соответствующие поля, скажем, l, p, s?
hmget user:100, l, p, s
То есть для каждой записи в базе сохраняется название поля или нет? Стоит оптимизировать названия полей в базе или нет?
То есть для каждой записи в базе сохраняется название поля или нет?Конечно, ведь в разных записях могут быть разные поля.
Стоит оптимизировать названия полей в базе или нет?Моё мнение — стоит в пределах разумного, особенно если много записей. Это, безусловно, сэкономит в первую очередь память.
Всё вышеперечисленное справедливо также и для других schema-less БД (например, MongoDB)
Сделайте в своей клиентской библиотеке модель с приватными ключами и публичными методами. Где приватные ключи будут иметь короткие имена, а методы — человекочитаемые.
Плюс не забывайте записывать схему редиса при любом изменении.
Названия ключей и полей, по возможности, стоит делать короче, как и стараться меньше использовать ZSET, где SCORE тоже достаточно прожорливое поле.
PS И не стоит сильно заморачиваться с длиной если данных не много и их рост не планируется.
Плюс не забывайте записывать схему редиса при любом изменении.
Названия ключей и полей, по возможности, стоит делать короче, как и стараться меньше использовать ZSET, где SCORE тоже достаточно прожорливое поле.
PS И не стоит сильно заморачиваться с длиной если данных не много и их рост не планируется.
Текущий мануал написан для redis-cli. Но в клиентах могут быть отличия в реализации некоторых комманд и особенно в том, что они возвращают. Можно было бы об этом написать.
Так же мне бы было интересно почитать практические советы о работе с редис на большом трафике. Есть много вопросов, которые можно было бы обсудить. Например, о настройки конфига под конкретные задачи.
Так же можно было бы написать о встроенном языке lua для редис. У него есть свои ограничения по сравнению с обычной версией луа.
Так же было бы интересно почитать о том, как в целом редис работает изнутри. Блокировка операций, сброс дампа на диск, в каком виде хранятся ключи и т.д.
Так же мне бы было интересно почитать практические советы о работе с редис на большом трафике. Есть много вопросов, которые можно было бы обсудить. Например, о настройки конфига под конкретные задачи.
Так же можно было бы написать о встроенном языке lua для редис. У него есть свои ограничения по сравнению с обычной версией луа.
Так же было бы интересно почитать о том, как в целом редис работает изнутри. Блокировка операций, сброс дампа на диск, в каком виде хранятся ключи и т.д.
добрый день. уточните пожалуйста можно ли задать при добавлении хеша obj.hmset() timeout этого самого хеша?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Шпаргалка по Redis