Это вопрос с 2 частями.Redis, ключи частичного совпадения с концом строки
У меня есть REDIS дБ хранения элементов со следующими ключами:
тип записи 1: "site_id: 1_item_id: 3"
тип записи 2: «site_id: 1_item_id: 3_user_id: 6"
Я использую KEYS site_id:1_item_id:*
, чтобы захватить записи типа 1 элементов (в данном случае для сайта 1)
К сожалению, он возвращает все элементы типа 1 и типа 2.
Каков наилучший способ захвата всех записей типа "site_id: 1_item_id: 3"? Не избегая тех, которые включают user_id? Можно ли использовать EOL?
Во-вторых, я читал, используя KEYS - плохой выбор, может ли кто-нибудь порекомендовать другой подход здесь? Я открыт для редактирования имен ключей, если нужно.
Спасибо за ответ Арно! Но не будет? не работает, если идентификатор больше 1 цифры? – Elliot
Действительно - используйте звездочку ('*') вместо этого, но обратите внимание, что она также будет соответствовать шаблонам, таким как 'site_id: 1_item_id: 3: foobar' –
Вы правы,"? " не будет работать с двумя или более цифрами. Поскольку спецификация «диапазон» для шаблонов или шаблон типа «+» регулярных выражений, я думаю, если у вас есть более одной цифры, вам лучше использовать SCAN. Но лучше использовать сканирование, несмотря ни на что. –