如何设置Redis在过滤key时不区分大小写?

SST*_*SST 5 redis redis-cli

我正在使用 redis 在我的应用程序中设置和过滤键值对。但在使用 HSCAN 进行过滤时,它始终返回区分大小写的数据。我需要从 Redis 获取不区分大小写的数据。我怎样才能得到这个?

如何设置Redis不区分大小写?

例如:如果我搜索“foo”,它应该返回以下结果,

Foo
foo
FOO
fOO
Run Code Online (Sandbox Code Playgroud)

请就此提供您的意见。

for*_*ack 1

没有内置的方法可以做到这一点,但是,您可以破解它。

您可以使这些字段具有公共前缀,例如FOO ,而不是执行: HSET hash foo valHSET hash Foo val和:HSET hash fOo val

HSET hash FOO:foo val
HSET hash FOO:Foo val
HSET hash FOO:fOo val
Run Code Online (Sandbox Code Playgroud)

然后HSCAN hash 0 MATCH foo*,您可以使用HSCAN hash 0 MATCH FOO:*不区分大小写地扫描项目,而不是 call 。

总之,使用不区分大小写的前缀对字段进行编码,例如所有字符大写或小写。