redis不直接支援索引,需要透過自己來維護。
對於非範圍唯一索引,我們可以簡單的把索引也存成KV對,v保存主key即可,而範圍檢索,或者非唯一索引,則要使用redis的zset來實作。 (建議學習:Redis影片教學)
舉例一個傳統的使用者係統範例
uid 用户id name 用户名 credit 用户积分 type 类型
#可以直接放到一個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的用戶,則只能全掃描!
在關聯式資料庫中,我們可以簡單在type上建立索引
select * from usr where type=1
這樣的SQL就可以高效執行了。 redis中需要我們自己再維護一個zset
zadd usr.index.type 0 0:1 zadd usr.index.type 0 1:2
注意,所有權重都設定成0,這樣可以直接按值檢索,然後可以透過
zrangebylex usr.index.type [1: (1;
以上是redis索引是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!