Подтвердить что ты не робот

Соглашение об именах и действительные символы для ключа Redis

Мне было интересно, какие символы считаются действительными в ключе Redis. Я давно искал Google и не нашел никакой полезной информации.

Как и в Python, допустимое имя переменной должно принадлежать классу [a-zA-Z0-9_]. Каковы требования и соглашения для ключей Redis?

4b9b3361

Ответ 1

Частично это отвечает здесь, но это не совсем дубликат, поскольку вы спрашиваете о допустимых символах, а также о соглашениях.

Что касается действительных символов в клавишах Redis, руководство объясняет это полностью:

Клавиши Redis бинарно безопасны, это означает, что вы можете использовать любую двоичную последовательность в виде ключа, начиная с строки, например "foo", до содержимого файла JPEG. Пустая строка также является допустимым ключом.

Несколько других правил о ключах:

Очень длинные ключи - это не очень хорошая идея, например ключ с 1024 байтами - плохая идея не только по памяти, но и потому, что поиск ключа в наборе данных может потребовать нескольких дорогостоящих сопоставлений ключей. Даже если задача состоит в том, чтобы сопоставить существование большого значения, прибегнуть к ее хэшированию (например, с SHA1), это лучшая идея, особенно с точки зрения памяти и пропускной способности.

Очень короткие клавиши часто не являются хорошей идеей. Существует мало смысла писать "u1000flw" в качестве ключа, если вы можете вместо этого написать "user: 1000: followers". Последний является более читаемым, а добавленное пространство является незначительным по сравнению с пространством, используемым самим объектом ключа и объектом value. В то время как короткие клавиши, очевидно, потребляют немного меньше памяти, ваша задача - найти правильный баланс.

Попробуйте придерживаться схемы. Например, "object-type: id" - хорошая идея, как в "user: 1000". Точки или тире часто используются для полей с несколькими словами, как в комментарии "1234: reply.to" или "comment: 1234: reply-to".

Максимально допустимый размер ключа - 512 МБ.