我正在使用Redis在我的应用程序中设置和过滤键值对。但是在使用HSCAN进行过滤时,它总是返回区分大小写的数据。我需要从redis获取不区分大小写的数据。我怎么能得到这个?
如何将Redis设置为不区分大小写?
ex:如果我搜索“ foo”,它将返回以下结果,
Foo
foo
FOO
fOO
请对此提供您的投入。
答案 0 :(得分:0)
没有内置的方法可以执行此操作,但是您可以对其进行破解。
您无需使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:*
。
一句话,请使用不区分大小写的前缀对字段进行编码,例如所有字符都大写或小写。
答案 1 :(得分:0)
请参阅以下文档:
https://redis.io/commands/hscan
https://redis.io/commands/scan。
您可以将glob patterns
与MATCH
一起使用。
([fF][oO][oO])*
这样的事情。
为什么不以大写或小写形式存储密钥,然后进行搜索?