redis可以多key對應一個value嗎?
仅有的幸福
仅有的幸福 2017-04-25 09:03:09
0
3
1256

我現在想把用戶資訊緩存進Redis。
用戶可以用手機號碼和身分證來查詢,手機號碼和身分證號碼都是唯一不可重複的。
是不是需要分別以手機號碼和身分證號為KEY來存兩份資料?
如何可以只存一份資料就可以透過手機號碼或身分證來取得使用者資訊?

仅有的幸福
仅有的幸福

全部回覆(3)
曾经蜡笔没有小新

以下思路仅供参考:

1:手机号和身份证号均是唯一的,任取其一做为用户信息的key,比如使用手机号mobile为key,使用hash结构;
mobile->hash
2:建立身份证和手机号的对应关系,使用string结构:id->mobile
3:以手机号可以直接查询用户数据,如使用身份证的话,先找出对应的手机号,再根据手机号取hash数据;

给我你的怀抱

个人觉得可以使用Hash来存,比如说用户A,手机号为123,身份证号为456,key可以使用A:手机号或者A:身份证号的形式。

那么可以HSET A:123 phone 123 id 456或者HSET A:456 phone 123 id 456

Peter_Zhu

理想状况:不考虑外国人的身份证和手机号,你的这种想法完全可以,把身份证号和手机号都对应到key。当调用这个key的时候 ,如果key是15或者18位的时候,就是身份证,11位就是手机号,判断下长度就ok了。
但是实际应用中,建议把这两个字段分开来存。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!