Redis:是否可以通过Redis中存储的任何字段获取过滤数据?

时间:2017-02-09 10:02:07

标签: mysql redis key-value key-value-store nosql

我的意思是我有像

这样的行
id name email     emp_id
1  abc  abc@a.com e1e2
2  lmn  lmn@a.com e1e3

在获取mysql之后,我将这些数据存储在redis中。

现在说我想从redis的某个人的电子邮件ID abc@a.com获取数据,我该怎么做以及我应该在redis中使用哪种数据类型?

2 个答案:

答案 0 :(得分:2)

您需要的是二级索引。您可以使用redis数据结构自行实现它。或者如果你对redis 4.0(现在在RC阶段)没问题,你可以尝试这个模块,让你自动化:

https://github.com/RedisLabsModules/secondary

使用它你可以做类似的事情:

对匹配WHERE条件的键执行redis操作(IDX.FROM users_email WHERE "email ='abc@a.com'" HGETALL $ 替换匹配查询的每个id的实际id。)

答案 1 :(得分:1)

这取决于您如何以redis格式存储数据。如果您经常通过电子邮件进行访问,那么您可以使用该电子邮件作为哈希的密钥,并直接使用' HGETALL电子邮件:abc@a.com'。