新聞中心
Redis是一種高性能、開源的使用內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)系統(tǒng)。Redis最初由Salvatore Sanfilippo開發(fā),后來也由Pivotal贊助和維護(hù)。Redis最初可以在BSD 2-Clause協(xié)議開源的的許可下免費(fèi)分發(fā),后來做了更新,也可以在Apache 2.0許可下發(fā)布。

Redis集合是類似于其他數(shù)據(jù)庫中的集合,它們有四種類型:HyperLogLog、Bloom Filter、Bitmap、Zsets,各種類型的集合插入和查詢效率都會(huì)不同。
1、HyperLogLog
HyperLogLog是用于計(jì)算和估計(jì)基數(shù)的統(tǒng)計(jì)算法,可以有效地計(jì)算大數(shù)據(jù)集中不重復(fù)元素的數(shù)量。Redis實(shí)現(xiàn)了HyperLogLog數(shù)據(jù)結(jié)構(gòu),可以維護(hù)和統(tǒng)計(jì)一組元素,使用空間只有普通算法’s的1/20 ,估算基數(shù)的誤差在2% 左右,而且操作效率非常高。
2、Bloom Filter
Bloom Filter可以用來檢查一個(gè)元素是否存在于一個(gè)集合中,因此它只是一個(gè)可能大小的bit map,它可以準(zhǔn)確地區(qū)分出指定集合中的元素。盡管他有著良好的性能,但是他不能操作太多的key,因?yàn)閎itmap的大小是固定的,而且他沒有辦法更新。
3、Bitmap
Bitmap是Redis中一種比較特殊的數(shù)據(jù)結(jié)構(gòu),允許它再給定的key之下,存儲(chǔ)一個(gè)對(duì)應(yīng)的bitmap。經(jīng)常被用在可以識(shí)別一組元素的場景,例如字符串文本搜索,通過設(shè)置的key的比特位,可以輕松得知某一元素是否存在。
4、Zsets
Zsets也叫sorted sets,是一種有序的集合,元素都會(huì)關(guān)聯(lián)一個(gè)權(quán)重值,并且元素是按照這個(gè)權(quán)重排序的,這使得可以在獲取的時(shí)候直接得到你想要的結(jié)果。
以上就是Redis集合的四種類型以及它們的底層實(shí)現(xiàn)分析,它們對(duì)于優(yōu)化和提升Redis存儲(chǔ)性能非常有用。下面以代碼實(shí)例來說明Zsets在Redis上的常用操作:
# 將元素member添加到sorted set中,如果member存在,則更新它的score
127.0.0.1:6379> ZADD myzset 10 member1
# 查詢zset中member1的score
127.0.0.1:6379> ZSCORE myzset member1
# 返回結(jié)果
10
# 返回zset中指定score范圍內(nèi)的元素
127.0.0.1:6379> ZRANGEBYSCORE myzset 8 10
# 返回結(jié)果
member1
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
網(wǎng)站欄目:無窮軟件Redis集合的底層實(shí)現(xiàn)分析(redis集合底層)
鏈接地址:http://fisionsoft.com.cn/article/dheespo.html


咨詢
建站咨詢
