redis 基本知識

1. 什么是Redis鼎文?

Redis 是一個基于內存的高性能key-value數(shù)據(jù)庫周偎。

2. Redis的特點

Redis本質上是一個Key-Value類型的內存數(shù)據(jù)庫胡嘿,很像memcached勿侯,整個數(shù)據(jù)庫統(tǒng)統(tǒng)加載在內存當中進行操作,定期通過異步操作把數(shù)據(jù)庫數(shù)據(jù)flush到硬盤上進行保存。因為是純內存操作,Redis的性能非常出色禀横,每秒可以處理超過 10萬次讀寫操作,是已知性能最快的Key-Value DB缭嫡。

Redis的出色之處不僅僅是性能,Redis最大的魅力是支持保存多種數(shù)據(jù)結構,此外單個value的最大限制是1GB纵诞,不像 memcached只能保存1MB的數(shù)據(jù)浙芙,因此Redis可以用來實現(xiàn)很多有用的功能节仿,比方說用他的List來做FIFO雙向鏈表矾瘾,實現(xiàn)一個輕量級的高性 能消息隊列服務傅寡,用他的Set可以做高性能的tag系統(tǒng)等等芜抒。另外Redis也可以對存入的Key-Value設置expire時間,因此也可以被當作一 個功能加強版的memcached來用屯耸。

Redis的主要缺點是數(shù)據(jù)庫容量受到物理內存的限制铺韧,不能用作海量數(shù)據(jù)的高性能讀寫,因此Redis適合的場景主要局限在較小數(shù)據(jù)量的高性能操作和運算上前酿。

3. 使用Redis有哪些好處

  1. 速度快丙挽,因為數(shù)據(jù)存在內存中平窘,類似于HashMap,HashMap的優(yōu)勢就是查找和操作的時間復雜度都是O(1)
  2. 支持豐富數(shù)據(jù)類型,支持string芒率,list德玫,set,sorted set,hash
  3. 支持事務查刻,操作都是原子性谜疤,所謂的原子性就是對數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行
  4. 豐富的特性:可用于緩存,消息膘螟,按key設置過期時間净当,過期后將會自動刪除

4. Redis最適合的場景

Redis最適合所有數(shù)據(jù)in-momory的場景,雖然Redis也提供持久化功能,但實際更多的是一個disk-backed的功能蜜猾,跟傳統(tǒng)意義上的持久化有比較大的差別,那么可能大家就會有疑問赶么,似乎Redis更像一個加強版的Memcached,那么何時使用Memcached,何時使用Redis呢?

如果簡單地比較Redis與Memcached的區(qū)別缕坎,大多數(shù)都會得到以下觀點:
1荷腊、Redis不僅僅支持簡單的k/v類型的數(shù)據(jù)香府,同時還提供list,set擒抛,zset歧沪,hash等數(shù)據(jù)結構的存儲撵孤。
2 咬清、Redis支持數(shù)據(jù)的備份画髓,即master-slave模式的數(shù)據(jù)備份。
3 、Redis支持數(shù)據(jù)的持久化,可以將內存中的數(shù)據(jù)保持在磁盤中躁劣,重啟的時候可以再次加載進行使用。

(1)溉浙、會話緩存(Session Cache)

最常用的一種使用Redis的情景是會話緩存(session cache)惊奇。用Redis緩存會話比其他存儲(如Memcached)的優(yōu)勢在于:Redis提供持久化祖秒。當維護一個不是嚴格要求一致性的緩存時抬纸,如果用戶的購物車信息全部丟失,大部分人都會不高興的,現(xiàn)在,他們還會這樣嗎?

幸運的是,隨著 Redis 這些年的改進,很容易找到怎么恰當?shù)氖褂肦edis來緩存會話的文檔膀懈。甚至廣為人知的商業(yè)平臺Magento也提供Redis的插件牢撼。

(2)纷责、全頁緩存(FPC)

除基本的會話token之外,Redis還提供很簡便的FPC平臺∥醪危回到一致性問題,即使重啟了Redis實例,因為有磁盤的持久化融痛,用戶也不會看到頁面加載速度的下降责语,這是一個極大改進白筹,類似PHP本地FPC它呀。

再次以Magento為例,Magento提供一個插件來使用Redis作為全頁緩存后端支救。

此外贬堵,對WordPress的用戶來說,Pantheon有一個非常好的插件 wp-redis敞掘,這個插件能幫助你以最快速度加載你曾瀏覽過的頁面。

(3)赫冬、隊列

Reids在內存存儲引擎領域的一大優(yōu)點是提供 list 和 set 操作,這使得Redis能作為一個很好的消息隊列平臺來使用风范。Redis作為隊列使用的操作锌半,就類似于本地程序語言(如Python)對 list 的 push/pop 操作冗澈。

如果你快速的在Google中搜索“Redis queues”腐缤,你馬上就能找到大量的開源項目,這些項目的目的就是利用Redis創(chuàng)建非常好的后端工具窒朋,以滿足各種隊列需求抵赢。例如欺劳,Celery有一個后臺就是使用Redis作為broker,你可以從這里去查看瓣俯。

(4)杰标、排行榜/計數(shù)器

Redis在內存中對數(shù)字進行遞增或遞減的操作實現(xiàn)的非常好。集合(Set)和有序集合(Sorted Set)也使得我們在執(zhí)行這些操作的時候變的非常簡單彩匕,Redis只是正好提供了這兩種數(shù)據(jù)結構腔剂。所以,我們要從排序集合中獲取到排名最靠前的10個用戶–我們稱之為“user_scores”驼仪,我們只需要像下面一樣執(zhí)行即可:

當然掸犬,這是假定你是根據(jù)你用戶的分數(shù)做遞增的排序。如果你想返回用戶及用戶的分數(shù)绪爸,你需要這樣執(zhí)行:

ZRANGE user_scores 0 10 WITHSCORES

Agora Games就是一個很好的例子湾碎,用Ruby實現(xiàn)的,它的排行榜就是使用Redis來存儲數(shù)據(jù)的奠货,你可以在這里看到介褥。

(5)、發(fā)布/訂閱

最后(但肯定不是最不重要的)是Redis的發(fā)布/訂閱功能递惋。發(fā)布/訂閱的使用場景確實非常多柔滔。我已看見人們在社交網(wǎng)絡連接中使用,還可作為基于發(fā)布/訂閱的腳本觸發(fā)器萍虽,甚至用Redis的發(fā)布/訂閱功能來建立聊天系統(tǒng)>取(不,這是真的杉编,你可以去核實)超全。

Redis提供的所有特性中,我感覺這個是喜歡的人最少的一個邓馒,雖然它為用戶提供如果此多功能嘶朱。

原文鏈接

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市光酣,隨后出現(xiàn)的幾起案子见咒,更是在濱河造成了極大的恐慌,老刑警劉巖挂疆,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件改览,死亡現(xiàn)場離奇詭異下翎,居然都是意外死亡,警方通過查閱死者的電腦和手機宝当,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門视事,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庆揩,你說我怎么就攤上這事俐东。” “怎么了订晌?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵虏辫,是天一觀的道長。 經(jīng)常有香客問我锈拨,道長砌庄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任奕枢,我火速辦了婚禮娄昆,結果婚禮上,老公的妹妹穿的比我還像新娘缝彬。我一直安慰自己萌焰,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布谷浅。 她就那樣靜靜地躺著扒俯,像睡著了一般。 火紅的嫁衣襯著肌膚如雪一疯。 梳的紋絲不亂的頭發(fā)上陵珍,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音违施,去河邊找鬼。 笑死瑟幕,一個胖子當著我的面吹牛磕蒲,可吹牛的內容都是我干的。 我是一名探鬼主播只盹,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼辣往,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了殖卑?” 一聲冷哼從身側響起站削,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孵稽,沒想到半個月后许起,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體十偶,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年园细,在試婚紗的時候發(fā)現(xiàn)自己被綠了惦积。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡猛频,死狀恐怖狮崩,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情鹿寻,我是刑警寧澤睦柴,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站毡熏,受9級特大地震影響坦敌,放射性物質發(fā)生泄漏。R本人自食惡果不足惜招刹,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一恬试、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疯暑,春花似錦训柴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至越锈,卻和暖如春仗嗦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甘凭。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工稀拐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人丹弱。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓德撬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親躲胳。 傳聞我的和親對象是個殘疾皇子蜓洪,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內容

  • 關于Mongodb的全面總結 MongoDB的內部構造《MongoDB The Definitive Guide》...
    中v中閱讀 31,938評論 2 89
  • 轉載地址:http://gnucto.blog.51cto.com/3391516/998509 Redis與Me...
    Ddaidai閱讀 21,452評論 0 82
  • 1、什么是Redis坯苹? Redis本質上是一個Key-Value類型的內存數(shù)據(jù)庫隆檀,很像memcached,整個數(shù)據(jù)...
    為你變乖_09e6閱讀 1,007評論 0 20
  • 1、什么是Redis恐仑? Redis本質上是一個Key-Value類型的內存數(shù)據(jù)庫泉坐,很像memcached,整個數(shù)據(jù)...
    夜風月圓閱讀 2,214評論 0 23
  • 我不知道我有多拖延菊霜,是真的睡不著坚冀,八點醒過來,實在是睡不著鉴逞,在凌晨四點才入睡记某,是有想著六點半起來,但是一睜眼一閉眼...
    律人閱讀 140評論 0 0