redis并不直接支持索引,需要通過自己來維護(hù)。
對(duì)于非范圍唯一索引,我們可以簡(jiǎn)單的把索引也存成KV對(duì),v保存主key即可,而范圍檢索,或者非唯一索引,則要使用redis 的 zset來實(shí)現(xiàn)。 ? ? ?(推薦學(xué)習(xí):Redis視頻教程)
舉例一個(gè)傳統(tǒng)的用戶系統(tǒng)例子
uid?用戶id name?用戶名 credit?用戶積分 type?類型
可以直接放到一個(gè)hashset中
hmset?usr:1?uid?1?name?aaa?credit?10?type?0 hmset?usr:2?uid?2?name?bbb?credit?20?type?1
通過uid檢索很快,但是如果要查詢type=1的用戶,則只能全掃描!
在關(guān)系數(shù)據(jù)庫(kù)中,我們可以簡(jiǎn)單在type上建立索引
select?*?from?usr?where?type=1
這樣的SQL就可以高效執(zhí)行了。redis中需要我們自己再維護(hù)一個(gè)zset
zadd?usr.index.type?0?0:1 zadd?usr.index.type?0?1:2
注意,所有權(quán)重都設(shè)置成0,這樣可以直接按值檢索,然后可以通過
zrangebylex?usr.index.type?[1:?(1;
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END