84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我現在想把用戶資訊緩存進Redis。 用戶可以用手機號碼和身分證來查詢,手機號碼和身分證號碼都是唯一不可重複的。 是不是需要分別以手機號碼和身分證號為KEY來存兩份資料? 如何可以只存一份資料就可以透過手機號碼或身分證來取得使用者資訊?
以下思路仅供参考:
1:手机号和身份证号均是唯一的,任取其一做为用户信息的key,比如使用手机号mobile为key,使用hash结构; mobile->hash2:建立身份证和手机号的对应关系,使用string结构:id->mobile3:以手机号可以直接查询用户数据,如使用身份证的话,先找出对应的手机号,再根据手机号取hash数据;
个人觉得可以使用Hash来存,比如说用户A,手机号为123,身份证号为456,key可以使用A:手机号或者A:身份证号的形式。
A:手机号
A:身份证号
那么可以HSET A:123 phone 123 id 456或者HSET A:456 phone 123 id 456。
HSET A:123 phone 123 id 456
HSET A:456 phone 123 id 456
理想状况:不考虑外国人的身份证和手机号,你的这种想法完全可以,把身份证号和手机号都对应到key。当调用这个key的时候 ,如果key是15或者18位的时候,就是身份证,11位就是手机号,判断下长度就ok了。但是实际应用中,建议把这两个字段分开来存。
以下思路仅供参考:
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
。理想状况:不考虑外国人的身份证和手机号,你的这种想法完全可以,把身份证号和手机号都对应到key。当调用这个key的时候 ,如果key是15或者18位的时候,就是身份证,11位就是手机号,判断下长度就ok了。
但是实际应用中,建议把这两个字段分开来存。