我目前正在研究使用Redis管理星号的黑名单和白名单,以管理垃圾邮件呼叫。由于redis是键值存储,因此最好检查数据库中是否包含电话号码。我可以将一些其他信息存储在我的商店的有价值的部分中,并使用电话号码作为密钥。我有2个问题:A)密钥中的电话号码可能会多次,因为不同的用户可能会多次输入。因此,由于密钥在db中必须唯一,因此我认为最好的方法是使用诸如user:phone number之类的密钥。有没有一种方法可以获取给定用户的所有记录:密钥中,或者只有我具有完整密钥时才能获取数据
B)当我将电话号码存储为密钥时,我可以使用user:+2135551212之类的东西吗?否则密钥中的+会引起问题吗?
要回答您的第一个问题:不,您不需要全键即可获取给定用户的所有记录。Redis提供了通配符匹配,您可以在情况下使用。例如:
127.0.0.1:6379> set john:1234567890 johnOne
OK
127.0.0.1:6379> set john:0987654321 johnTwo
OK
127.0.0.1:6379> keys john*
1) "john:1234567890"
2) "john:0987654321"
127.0.0.1:6379>
我已经用用户'john'设置了两个密钥,后跟不同的电话号码,因此当我需要以john开头的所有密钥时,我们可以使用'keys john *'来获取所有以'john'开头的密钥。
要回答第二部分,是的,您可以在键中使用“ +”而不会出现任何问题。再次举例说明:
127.0.0.1:6379> set user:+1234567890 helloagain
OK
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句