table of contents
使用redis有哪些好處?
redis資料型別
string
hash
list
setsorted set
速度快,因為資料存在記憶體中,類似於hashmap,hashmap的優勢就是查詢和操作的時間複雜度都是o(1)
支援豐富資料型別,支援string,list,set,sorted set,hash
常用命令:set/get/decr/incr/mget等;
應用場景:string是最常用的一種資料型別,普通的key/value儲存都可以歸為此類;
實現方式:string在redis內部儲存預設就是乙個字串,被redisobject所引用,當遇到incr、decr等操作時會轉成數值型進行計算,此時redisobject的encoding欄位為int。
常用命令:hget/hset/hgetall等
應用場景:我們要儲存乙個使用者資訊物件資料,其中包括使用者id、使用者姓名、年齡和生日,通過使用者id我們希望獲取該使用者的姓名或者年齡或者生日;
常用命令:lpush/rpush/lpop/rpop/lrange等;
應用場景:redis list的應用場景非常多,也是redis最重要的資料結構之一,比如twitter的關注列表,粉絲列表等都可以用redis的list結構來實現;
實現方式:redis list的實現為乙個雙向鍊錶,即可以支援反向查詢和遍歷,更方便操作,不過帶來了部分額外的記憶體開銷,redis內部的很多實現,包括傳送緩衝佇列等也都是用的這個資料結構。
常用命令:sadd/spop/smembers/sunion等;
應用場景:redis set對外提供的功能與list類似是乙個列表的功能,特殊之處在於set是可以自動排重的,當你需要儲存乙個列表資料,又不希望出現重複資料時,set是乙個很好的選擇,並且set提供了判斷某個成員是否在乙個set集合內的重要介面,這個也是list所不能提供的;
實現方式:set 的內部實現是乙個 value永遠為null的hashmap,實際就是通過計算hash的方式來快速排重的,這也是set能提供判斷乙個成員是否在集合內的原因。
常用命令:zadd/zrange/zrem/zcard等;
實現方式:redis sorted set的內部使用hashmap和跳躍表(skiplist)來保證資料的儲存和有序,hashmap裡放的是成員到score的對映,而跳躍表裡存放的是所有的成員,排序依據是hashmap裡存的score,使用跳躍表的結構可以獲得比較高的查詢效率,並且在實現上比較簡單。
redis資料型別
redis對比與memcached 最大的優勢就是支援更多靈活的資料結構,豐富的資料操作 redis現支援的資料型別有 字串,列表,集合,雜湊,有序集合 1.字串 普通資料型別 2.列表 簡單的字串列表,按照插入順序排序。你可以新增乙個元素到列表的頭部 左邊 或者尾部 右邊 適用於 對資料頭尾操作頻...
Redis 資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...
Redis 資料型別
redis支援五種資料型別 string 字串 hash 雜湊 list 列表 set 集合 及zset sorted set 有序集合 string是redis最基本的型別,你可以理解成與memcached一模一樣的型別,乙個key對應乙個value。string型別是二進位制安全的。意思是red...