如何在过滤密钥时将Redis设置为不区分大小写?

时间:2019-06-13 05:00:47

标签: redis redis-cli

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

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

ex:如果我搜索“ foo”,它将返回以下结果,

Foo
foo
FOO
fOO

请对此提供您的投入。

2 个答案:

答案 0 :(得分:0)

没有内置的方法可以执行此操作,但是您可以对其进行破解。

您无需使HSET hash foo valHSET hash Foo valHSET 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 patternsMATCH一起使用。

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

这样的事情。

为什么不以大写或小写形式存储密钥,然后进行搜索?