Получить все ключи от Redis, в которых есть какая-то строка

У меня есть некоторые данные, хранящиеся в redis с указанными ниже ключами
Я сохранил некоторые ключи в Redis, как

key1 = https://abc.net/v/140225014843/css/
key2 = https://abc.net/v/153729007613/css/
key3 = https://abc.net/v/240125414249/css/
key4 = https://abc.net/v/140225014843/css/:tokens
key5 = https://abc.net/v/240125414249/css/:tokens

Теперь у меня data = 140225014843 я хочу получить ключ и его значение, содержащее эти данные.
Пример: у key1 есть данные внутри него, поэтому я хочу получить key1 из redis. Я использую Django-Redis.

Редактировать:
В Key4 также есть данные, но я хочу получить только те ключи, которые имеют шаблон, как key1.

1 ответ

Вы должны переосмыслить то, как вы называете свои ключи, так как это важное решение.

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

Например, в вашем случае вы можете сделать:

redis> RPUSH 140225014843 "css/"
redis> RPUSH 153729007613 "css/"
redis> RPUSH 240125414249 "css/"
redis> RPUSH 140225014843 "css/:tokens"
redis> RPUSH 240125414249 "css/:tokens"

В зависимости от того, что является переменной частью в ваших данных, вы можете настроить этот подход. Например, если "css/" присутствует всегда, вы можете его опустить.

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

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