Поддерживает ли Redis составные ключи?

Можно ли в Redis сделать такой составной ключ?

"A:B:C:D"

затем запрашивать по части ключа, например, по "B"

Тогда Redis должен вернуть все ключи по такой маске (*:B*:*)

Затем по этим ключам можно уже достать данные по этим ключам

Так можно сделать?
Какие есть нюансы?
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
Редис однопоточный, это значит, что любая операция блокирует все остальные на время выполнения, поэтому делать SCAN - плохая практика, лучше подумайте над тем, как разложить данные по ключам таким образом, чтобы избежать потребности в сканировании.

Если вы расскажете подробнее, что именно вы хотите сделать, то я могу попробовать вам с этим помочь.
Ответ написан
2ord
@2ord
продвинутый чайник
Redis, насколько мне известно, имеет лишь статичные ключи. То есть "A:B:C:D" это верный ключ, по которому можно найти одно единственное значение.
Можно по ключу записывать хэш список. HGET/HSET.
Тогда Redis должен вернуть все ключи по такой маске (*:B*:*)
Похоже на команду SCAN. Она как раз по маске ищет ключи.
Но этот случай подходит натурально для использования реляционных СУБД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы