Как настроить Redis, чтобы он был нечувствительным к регистру при фильтрации ключей? - PullRequest
2 голосов
/ 13 июня 2019

Я использую redis для установки и фильтрации пары ключ-значение в моем приложении.Но он возвращает всегда чувствительные к регистру данные при фильтрации с использованием HSCAN.Мне нужно получить данные без учета регистра от Redis.Как я могу получить это?

Как настроить Redis без учета регистра?

ex: Если я ищу "foo", он должен вернуть следующие результаты,

Foo
foo
FOO
fOO

Пожалуйста, предоставьте ваш вклад по этому вопросу.

Ответы [ 2 ]

0 голосов
/ 13 июня 2019

См. Эти документы:
https://redis.io/commands/hscan
https://redis.io/commands/scan.

Вы можете использовать glob patterns с MATCH.

([fF][oO][oO])*

Примерно так.

Почему бы не сохранить ключи в верхнем или нижнем регистре, а затем выполнить поиск?

0 голосов
/ 13 июня 2019

Нет встроенного способа сделать это, однако, вы можете взломать его.

Вместо того, чтобы делать: HSET hash foo val, HSET hash Foo val и HSET hash fOo val, вы делаете эти поля общимипрефикс, например FOO:

HSET hash FOO:foo val
HSET hash FOO:Foo val
HSET hash FOO:fOo val

Тогда вместо вызова HSCAN hash 0 MATCH foo* вы можете использовать HSCAN hash 0 MATCH FOO:* для сканирования элементов без учета регистра.

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

...