千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > memcached、Redis緩存的數(shù)據(jù)都是key-value的形式,那緩存時(shí),具體是key、value分別是怎樣的數(shù)據(jù)呢?

memcached、Redis緩存的數(shù)據(jù)都是key-value的形式,那緩存時(shí),具體是key、value分別是怎樣的數(shù)據(jù)呢?

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 14:16:30 1697177790

一、緩存時(shí),具體是key、value分別是怎樣的數(shù)據(jù)

首先Memcache是一個(gè)基于內(nèi)存的key/value分布式緩存系統(tǒng),不過(guò)memcache還可用于緩存其他東西,例如圖片、視頻等等。Redis是一個(gè)開(kāi)源的基于內(nèi)存亦可持久化的日志型、Key-Value的數(shù)據(jù)庫(kù)。

Redis不僅僅支持簡(jiǎn)單的k/v類型的數(shù)據(jù),同時(shí)還提供list,set,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。

大部分緩存實(shí)現(xiàn)時(shí)都是基于key/value形式,主要是緩存的使用場(chǎng)景決定的。另外,Redis是一種NoSQL數(shù)據(jù)庫(kù),使用場(chǎng)景也不僅僅限于緩存。

Memcached通過(guò)使用key-value形式存儲(chǔ)和訪問(wèn)數(shù)據(jù),在內(nèi)存中維護(hù)一張巨大的HashTable,使得對(duì)數(shù)據(jù)查詢的時(shí)間復(fù)雜度降低到O(1),保證了對(duì)數(shù)據(jù)的高性能訪問(wèn)。

memcached是多線程,非阻塞IO復(fù)用的網(wǎng)絡(luò)模型,分為監(jiān)聽(tīng)主線程和worker子線程,監(jiān)聽(tīng)線程監(jiān)聽(tīng)網(wǎng)絡(luò)連接,接受請(qǐng)求后,將連接描述字pipe傳遞給worker線程,進(jìn)行讀寫(xiě)IO,網(wǎng)絡(luò)層使用libevent封裝的事件庫(kù),多線程模型可以發(fā)揮多核作用,但是引入了cache coherency和鎖的問(wèn)題,比如:memcached最常用的stats命令,實(shí)際memcached所有操作都要對(duì)這個(gè)全局變量加鎖,進(jìn)行技術(shù)等工作,帶來(lái)了性能損耗。

延伸閱讀:

二、Memcached內(nèi)存管理機(jī)制

Memcached默認(rèn)使用Slab Allocation機(jī)制管理內(nèi)存,其主要思想是按照預(yù)先規(guī)定的大小,將分配的內(nèi)存分割成特定長(zhǎng)度的塊以存儲(chǔ)相應(yīng)長(zhǎng)度的key-value數(shù)據(jù)記錄,以完全解決內(nèi)存碎片問(wèn)題。Slab Allocation機(jī)制只為存儲(chǔ)外部數(shù)據(jù)而設(shè)計(jì),也就是說(shuō)所有的key-value數(shù)據(jù)都存儲(chǔ)在Slab Allocation系統(tǒng)里,而Memcached的其它內(nèi)存請(qǐng)求則通過(guò)普通的malloc/free來(lái)申請(qǐng),因?yàn)檫@些請(qǐng)求的數(shù)量和頻率決定了它們不會(huì)對(duì)整個(gè)系統(tǒng)的性能造成影響Slab Allocation的原理相當(dāng)簡(jiǎn)單。 如圖所示,它首先從操作系統(tǒng)申請(qǐng)一大塊內(nèi)存,并將其分割成各種尺寸的塊Chunk,并把尺寸相同的塊分成組Slab Class。其中,Chunk就是用來(lái)存儲(chǔ)key-value數(shù)據(jù)的最小單位。每個(gè)Slab Class的大小,可以在Memcached啟動(dòng)的時(shí)候通過(guò)制定Growth Factor來(lái)控制。假定圖中Growth Factor的取值為1.25,如果名列前茅組Chunk的大小為88個(gè)字節(jié),第二組Chunk的大小就為112個(gè)字節(jié),依此類推。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
dbvisualizer怎么導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)?

一、dbvisualizer導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的步驟1、連接要導(dǎo)出的數(shù)據(jù)庫(kù)打開(kāi)DBVisualizer,連接要導(dǎo)出的數(shù)據(jù)庫(kù),通過(guò)導(dǎo)航器選擇要導(dǎo)出的數(shù)據(jù)庫(kù)對(duì)象,如表...詳情>>

2023-10-13 16:04:27
像愛(ài)奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的?

一、像愛(ài)奇藝、優(yōu)酷等視頻網(wǎng)站的數(shù)據(jù)庫(kù)是怎么設(shè)計(jì)的1、設(shè)置數(shù)據(jù)集成一般來(lái)說(shuō)視頻網(wǎng)站數(shù)據(jù)庫(kù)的設(shè)計(jì)需要設(shè)置數(shù)據(jù)集成,針對(duì)于各大互聯(lián)網(wǎng)信息進(jìn)行...詳情>>

2023-10-13 15:50:12
為什么mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引?

一、為什么mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引mysql中刪除某一列的主鍵索引后另一列會(huì)從少數(shù)索引變成主鍵索引,一般...詳情>>

2023-10-13 15:48:38
Nosql與Hadoop、Voldemort、Dynamo之間關(guān)系是怎樣的?

一、Nosql與Hadoop、Voldemort、Dynamo之間關(guān)系是怎樣的Nosql是非關(guān)系數(shù)據(jù)庫(kù)。Voldemort和Dynamo都是鍵值數(shù)據(jù)庫(kù),屬于NoSQL的一種。Hadoop是一...詳情>>

2023-10-13 15:29:43
java開(kāi)發(fā)需要會(huì)什么?

一、Java基礎(chǔ)知識(shí)要成為一名合格的Java開(kāi)發(fā)人員,首先需要掌握J(rèn)ava的基礎(chǔ)知識(shí)。這包括了解Java的語(yǔ)法、變量、數(shù)據(jù)類型、運(yùn)算符和控制流程等基本...詳情>>

2023-10-13 15:23:26
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日本精品久久免费观看 | 亚洲一区二区精品 | 亚洲日本va在线视频观看 | 亚洲欧美中文日韩aⅴ手机版 | 亚洲国产午夜看片 | 中文字幕在线视频网站 |