搜尋

首頁  >  問答  >  主體

redis可以多key對應一個value嗎?

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

仅有的幸福仅有的幸福2795 天前1370

全部回覆(3)我來回復

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-25 09:05:09

    以下思路僅供參考:

    1:手機號碼和身分證號碼都是唯一的,任取其一做為使用者資訊的key,例如使用手機號碼mobile為key,使用hash結構;
    mobile->hash
    2:建立身分證和手機號碼的對應關係,使用string結構:id->mobile
    3:以手機號可以直接查詢用戶數據,如使用身份證的話,先找出對應的手機號,再根據手機號取hash數據;

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-04-25 09:05:09

    個人覺得可以使用Hash來存,比如說用戶A,手機號碼為123,身分證號為456,key可以使用A:手机号或者A:身份证号的形式。

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-25 09:05:09

    理想狀況:不考慮外國人的身分證和手機號,你的這種想法完全可以,把身分證號和手機號都對應到key。呼叫這個key的時候 ,如果key是15或18位元的時候,就是身分證,11位元就是手機號,判斷下長度就ok了。
    但是實際應用中,建議把這兩個欄位分開來存。

    回覆
    0
  • 取消回覆