Redis之intset(整数集合)
生活随笔
收集整理的這篇文章主要介紹了
Redis之intset(整数集合)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Redis中set數(shù)據(jù)結(jié)構(gòu)它是由intset或者h(yuǎn)ashtable構(gòu)成的今天我們就來講一下intset
整數(shù)集合(intset)呢, 是一個有序的存儲數(shù)據(jù)的結(jié)構(gòu)
它有以下優(yōu)點(diǎn)
- 1.整數(shù)集合中, 元素按照值的大小由小到大排列;
- 2.可以保存int16_t, int32_t, int64_t類型的數(shù)據(jù)
- 3.存儲數(shù)據(jù)時, 可以保證其內(nèi)部不出現(xiàn)重復(fù)的數(shù)據(jù)
當(dāng)一個set只包含整數(shù)元素, 并且元素不多的時候, Redis就可能使用intset來實(shí)現(xiàn)set
intset底層實(shí)現(xiàn)
typedef struct intset {uint32_t encoding; // 編碼類型uint32_t length; // 元素?cái)?shù)量int8_t contents[]; // 元素?cái)?shù)組 }intset;但有一點(diǎn)需要注意
intset的集合升級與降級
比如一開始set存儲的是int16_t類型的數(shù)據(jù), 但是當(dāng)我們添加了一個int32_t類項(xiàng)的數(shù)據(jù)時,就需要操作升級
最后集合是不支持降級的哦
總結(jié)
以上是生活随笔為你收集整理的Redis之intset(整数集合)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis简单动态字符串
- 下一篇: Redis基本数据的的常见命令操作