Python知識(shí)分享網(wǎng) - 專(zhuān)業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
【Java面試】redis PDF 下載
發(fā)布于:2024-02-01 11:41:15
(假如點(diǎn)擊沒(méi)反應(yīng),多刷新兩次就OK!)

【Java面試】redis  PDF 下載  圖1

 

 

 

資料內(nèi)容:

 

 

Redis 介
 

Redis 是一個(gè)基于內(nèi)存的高性能key-value數(shù)據(jù)庫(kù)。
Redis是單線程
redis利用隊(duì)列技術(shù)將并發(fā)訪問(wèn)變?yōu)榇性L問(wèn),消除了傳統(tǒng)數(shù)據(jù)庫(kù)串行控制的開(kāi)銷(xiāo)
Redis 的出色之處不僅僅是性能,Redis 最大的魅力是支持保存多種數(shù)據(jù)結(jié)構(gòu),此外單個(gè) value 的最大限制是 1GB,不像 memcached 只能保存 1MB 的數(shù)據(jù),因此 Redis 可以用來(lái)實(shí)現(xiàn)很多有用的功能。
Reids常用5種數(shù)據(jù)類(lèi)型
string,list,set,sorted set,hash
一個(gè)字符串類(lèi)型的值能存儲(chǔ)最大容量是多少?
512M

 

Redis 有哪些適合的場(chǎng)景?
(1)會(huì)話緩存(Session Cache)
最常用的一種使用 Redis 的情景是會(huì)話緩存(sessioncache),用 Redis 緩存會(huì)話比其他存儲(chǔ)(如Memcached)的優(yōu)勢(shì)在于:Redis 提供持久化。當(dāng)維護(hù)一個(gè)不是嚴(yán)格要求一致性的緩存時(shí),如果用戶(hù)的購(gòu)物車(chē)信息全部丟失,大部分人都會(huì)不高
興的,現(xiàn)在,他們還會(huì)這樣嗎?
幸運(yùn)的是,隨著 Redis 這些年的改進(jìn),很容易找到怎么恰當(dāng)?shù)氖褂?Redis 來(lái)緩存會(huì)話的文檔。甚至廣為人知的商業(yè)平臺(tái) Magento 也提供 Redis 的插件。
(2)全頁(yè)緩存(FPC)
除基本的會(huì)話 token 之外,Redis 還提供很簡(jiǎn)便的 FPC 平臺(tái)?;氐揭恢滦詥?wèn)題,即使重啟了 Redis 實(shí)例,因?yàn)橛写疟P(pán)的持久化,用戶(hù)也不會(huì)看到頁(yè)面加載速度的下降,這是一個(gè)極大改進(jìn),類(lèi)似 PHP 本地FPC。
再次以 Magento 為例,Magento 提供一個(gè)插件來(lái)使用 Redis 作為全頁(yè)緩存后端。
此外,對(duì) WordPress 的用戶(hù)來(lái)說(shuō),Pantheon 有一個(gè)非常好的插件 wp-redis,這個(gè)插件能幫助你以最快速度加載你曾瀏覽過(guò)的頁(yè)面。
(3)隊(duì)列
Reids 在內(nèi)存存儲(chǔ)引擎領(lǐng)域的一大優(yōu)點(diǎn)是提供 list 和 set 操作,這使得 Redis 能作為一個(gè)很好的消息隊(duì)列平臺(tái)來(lái)使用。Redis 作為隊(duì)列使用的操作,就類(lèi)似于本地程序語(yǔ)言(如 Python)對(duì) list 的 push/pop操作。
如果你快速的在 Google 中搜索“Redis queues”,你馬上就能找到大量的開(kāi)源項(xiàng)目,這些項(xiàng)目的目的就是利用 Redis 創(chuàng)建非常好的后端工具,以滿(mǎn)足各種隊(duì)列需求。例如,Celery 有一個(gè)后臺(tái)就是使用Redis 作為 broker,你可以從這里去查看。
(4)排行榜/計(jì)數(shù)器
Redis 在內(nèi)存中對(duì)數(shù)字進(jìn)行遞增或遞減的操作實(shí)現(xiàn)的非常好。集合(Set)和有序集合(SortedSet)也使得我們?cè)趫?zhí)行這些操作的時(shí)候變得非常簡(jiǎn)單,Redis 只是正好提供了這兩種數(shù)據(jù)結(jié)構(gòu)。
所以,我們要從排序集合中獲取到排名最靠前的 10 個(gè)用戶(hù)–我們稱(chēng)之為“user_scores”,我們只需要像下面一樣執(zhí)行即可:
當(dāng)然,這是假定你是根據(jù)你用戶(hù)的分?jǐn)?shù)做遞增的排序。如果你想返回用戶(hù)及用戶(hù)的分?jǐn)?shù),你需要這樣執(zhí)行:
ZRANGE user_scores 0 10 WITHSCORESAgora Games 就是一個(gè)很好的例子,用 Ruby 實(shí)現(xiàn)的,它的排行榜就是使用 Redis 來(lái)存儲(chǔ)數(shù)據(jù)的,你可以在這里看到。