日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
SDS結(jié)構(gòu)與優(yōu)勢(shì)-創(chuàng)新互聯(lián)
1.SDS結(jié)構(gòu) 1.1 SDS簡(jiǎn)介

Redis的key和value的基礎(chǔ)數(shù)據(jù)類(lèi)型都是字符串類(lèi)型。這種字符串類(lèi)型是一種自定義的數(shù)據(jù)類(lèi)型,simple dynamic string (SDS)。
注:

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),贛州企業(yè)網(wǎng)站建設(shè),贛州品牌網(wǎng)站建設(shè),網(wǎng)站定制,贛州網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,贛州網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

在這里插入圖片描述
type country查看的是country(key)對(duì)應(yīng)的value的類(lèi)型為string類(lèi)型,是Redis的五種類(lèi)型,String,List,Hash,Set,ZSet等
object encoding country查看的是country(key)對(duì)應(yīng)的value的內(nèi)存種存儲(chǔ)的類(lèi)型為embsrt,即SDS
在這里插入圖片描述
type age查看的是age(key)對(duì)應(yīng)的value的類(lèi)型是string類(lèi)型,String,List,Hash,Set,ZSet等
object encoding age查看的是age(key)對(duì)應(yīng)的value的存儲(chǔ)類(lèi)型為int型

Redis字符串并不全都是SDS,也有可能出現(xiàn)C語(yǔ)言的字符串(Redis是由標(biāo)準(zhǔn)C開(kāi)發(fā))。C字符串只有可能出現(xiàn)在字符串“字面常量種”,并且該字符串不能變更。例如:
(1)get命令返回的字符串
在這里插入圖片描述

(2)設(shè)置日志時(shí)的字符串

Redislog(REDIS_WRINNING,"SDFSDFSDF");
1.2 SDS結(jié)構(gòu)

在這里插入圖片描述
SDS是一個(gè)結(jié)構(gòu)體,定義在Redis安裝目錄下的src/sds.h中
而C字符串使用len+1長(zhǎng)度的字符數(shù)組來(lái)表示實(shí)際長(zhǎng)度為len的字符串,字符數(shù)組最后以’\0’結(jié)尾,但不能滿足Redis對(duì)于字符串功能性,安全性及高效性的要求。

2 SDS的優(yōu)勢(shì) 2.1 防止"字符串長(zhǎng)度獲取"性能瓶頸

通過(guò)len字段得到字符串實(shí)際長(zhǎng)度,而無(wú)需遍歷整個(gè)字符串

2.2保障二進(jìn)制安全

SDS不以’\0’作為結(jié)束,可以保存圖像,音視頻等數(shù)據(jù)中存在’\0’的情況。而對(duì)于C語(yǔ)言的字符串,需要對(duì)數(shù)據(jù)進(jìn)行限制,或者替換’\0’

2.3減少內(nèi)存再分配次數(shù)

對(duì)于C語(yǔ)言字符串來(lái)說(shuō),將兩個(gè)字符數(shù)組拼接(strcat(s1,s2))時(shí)需要重新分配足夠多的新內(nèi)存,這導(dǎo)致了性能的消耗.
SDS采用了空間預(yù)分配策略與惰性空間釋放策略來(lái)避免內(nèi)存再分配問(wèn)題
空間預(yù)分配策略:
每次SDS進(jìn)行空間擴(kuò)展時(shí),程序不但為其分配所需的空間,還會(huì)為其分配額外的未使用的空間,減少內(nèi)存的再分配次數(shù),而額外分配的未使用空間大小取決于空間擴(kuò)展后SDS的len屬性值
1)如果需要分配的額外空間小于1M,則分配未使用的空間大小與len長(zhǎng)度相同
2)如果需要分配的額外空間大于1M,則分配的未使用空間大小固定未1M
惰性空間釋放策略:
SDS字符串長(zhǎng)度如果縮短,那么多出來(lái)的未使用空間將暫時(shí)不釋放,而是增加到free額外空間中 ,以使后期擴(kuò)展SDS時(shí)減少內(nèi)存再分配次數(shù)

2.4 兼容C函數(shù)

Redis中提供了很多的SDS的API,同時(shí)為了兼容C函數(shù),SDS的底層數(shù)據(jù)buf[]中的字符串仍然以空字符串’\0’結(jié)尾
注:比較雙方一個(gè)是SDS,一個(gè)是C字符串,此時(shí)可以通過(guò)C語(yǔ)言函數(shù)
strcmp(sds_str->buf, c_str)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧


分享文章:SDS結(jié)構(gòu)與優(yōu)勢(shì)-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.dlmjj.cn/article/dchdds.html