如何在redis中获取用户的所有密钥

xxe27gdn  于 2021-06-07  发布在  Redis
关注(0)|答案(1)|浏览(375)

我目前正在考虑使用redis来管理一个黑名单和白名单的星号来管理垃圾邮件电话。因为redis是一个键值存储,所以最好检查db中是否有电话号码。我可以存储一些额外的信息在我的价值部分的商店,并使用电话号码作为一个关键。2我的问题是一个)一个电话号码可以多次在关键,因为它将是为不同的用户。因此,由于密钥在db中必须是唯一的,所以我认为最好的方法是使用user:phone number. 有没有一种方法可以获取给定用户的所有记录:在密钥中还是只有在拥有完整密钥时才能获取数据
b) 当我将电话号码存储为键时,是否可以使用用户:+2135551212之类的内容,或者键中的+是否会导致问题?

u3r8eeie

u3r8eeie1#

回答您的第一个问题:不,您不需要完整密钥来获取给定用户的所有记录。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

相关问题