當前位置:成語大全網 - 新華字典 - redis數據結構

redis數據結構

redis數據結構

Redis是壹種存儲key-value的內存型數據庫,它的key都是字符串類型,value支持存儲5種類型的數據:String(字符串類型)、List(列表類型)、Hash(哈希表類型、即key-value類型)、Set(無序集合類型,元素不可重復)、Zset(有序集合類型,元素不可重復)。

針對這5種數據類型,Redis在底層都是使用的redisObject對象表示的。redisObject有3個重要的屬性:type、encoding、ptr。

其中,type表示value的數據類型,也就是我們上面說的5種數據類型(REDIS_STRING、REDIS_LIST、REDIS_HASH、REDIS_SET、REDIS_ZSET);encoding表示value的編碼,即底層使用了哪種數據結構;ptr是壹個指向保存value的底層數據結構的指針。

其中type和ptr屬性不用做過多的解釋,壹看就知道什麽意思,本篇文章主要分析value的encoding編碼,也就是不同數據類型的value對應的底層數據結構是什麽以及數據結構的原理分析。

Redis(Remote Dictionary Server ),即遠程字典服務,是壹個開源的使用ANSI C語言編寫、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。

redis是壹個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。

在此基礎上,redis支持各種不同方式的排序。與memcached壹樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。