redis索引是什么

redis索引是什么

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)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享