Redis介紹

Redis

1. Redis簡介

Redis是一個由C語言編寫的锯蛀、開源的(GitHub地址)、基于Key-Value的非關(guān)系型內(nèi)存數(shù)據(jù)庫次慢,由意大利人Salvatore Sanfilippo開發(fā)創(chuàng)造(下附帥照)旁涤。Redis雖基于內(nèi)存但是也可持久化到硬盤翔曲,支持網(wǎng)絡(luò)并且提供多種語言的API。更多關(guān)于Redis的介紹可移步Redis官網(wǎng)(https://redis.io/)劈愚。

“Redis之父”:Salvatore Sanfilippo

2. Redis與其他數(shù)據(jù)庫的對比

與常見的關(guān)系數(shù)據(jù)庫不同(如MySQL瞳遍、SQLServer、Oracle)菌羽,Redis屬于NoSQL數(shù)據(jù)庫即非關(guān)系數(shù)據(jù)庫陣營掠械,(而MongoDB則是介于非關(guān)系與關(guān)系數(shù)據(jù)庫之間)。Redis不使用關(guān)系數(shù)據(jù)庫中的表注祖,它不會預(yù)定義或強制要求用戶對Redis存儲的不同數(shù)據(jù)進行關(guān)聯(lián)猾蒂。

Redis與memcached類似,都是用于存儲鍵值映射是晨,但支持更多的value類型肚菠。而且Redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步罩缴。

以下引用《Redis實戰(zhàn)》中的表格(片段)展示Redis與其他一些數(shù)據(jù)庫的對比

名稱 類型 數(shù)據(jù)存儲選項 查詢類型 附加功能
Redis 使用內(nèi)存存儲(in-memory)的非關(guān)系數(shù)據(jù)庫 字符串蚊逢、列表、集合箫章、散列表烙荷、有序集合 每種數(shù)據(jù)類型都有自己的專屬命令,另外還有批量操作(bulk operation)和不完全(partial)的事務(wù)支持 發(fā)布與訂閱檬寂,主從復(fù)制(master/slave replication)终抽,持久化,腳本(存儲過程焰薄,stored procedure)
memcached 使用內(nèi)存存儲的鍵值緩存 鍵值之間的映射 創(chuàng)建命令拿诸、讀取命令、更新命令塞茅、刪除命令及其他幾個命令 以提升性能而設(shè)的多線程服務(wù)器
MySQL 關(guān)系數(shù)據(jù)庫 每個數(shù)據(jù)庫可以包含多個表,每個表可以包含多個行季率;可以處理多個表的視圖(view)野瘦;支持空間(spatial)和第三方擴展 SELECT、INSERT飒泻、UPDATE鞭光、DELETE、函數(shù)泞遗、存儲過程等 支持ACID性質(zhì)(需要使用InnoDB)惰许,主從復(fù)制和主主復(fù)制(master/master replication)
MongoDB 使用硬盤存儲(on-disk)的非關(guān)系文檔存儲 每個數(shù)據(jù)庫可以包含多個表,每個表可以包含多個無schema(schema-less)的BSON文檔 創(chuàng)建命令史辙、讀取命令汹买、更新命令佩伤、刪除命令、條件查詢命令等 支持map-reduce操作晦毙,主從復(fù)制生巡,分片,空間索引(spatial index)

3. Redis適用場景

  1. 緩存见妒。這應(yīng)該是Redis最常用的使用場景孤荣,可以避免寫入不必要的臨時數(shù)據(jù),也免去了對臨時數(shù)據(jù)進行掃描和刪除的麻煩须揣,進而改善程序性能盐股。

  2. 排行榜相關(guān)。Redis的SortedSet(有序集合)數(shù)據(jù)結(jié)構(gòu)能夠輕易的處理排序相關(guān)的計算耻卡,而使用關(guān)系型數(shù)據(jù)庫的ASC遂庄、DESC代價要大些。

  3. 計數(shù)器/限速器劲赠。利用Redis中原子性的自增操作涛目,我們可以統(tǒng)計類似用戶點贊數(shù)、用戶訪問數(shù)等凛澎,這類操作如果用MySQL霹肝,頻繁的讀寫會帶來相當大的壓力;限速器比較典型的使用場景是限制某個用戶訪問某個API的頻率塑煎,常用的有搶購時沫换,防止用戶瘋狂點擊帶來不必要的壓力。

  4. 集合操作最铁。利用set數(shù)據(jù)結(jié)構(gòu)的一些命令讯赏,比如求交集、并集冷尉、差集等漱挎。可以方便搞定一些共同好友雀哨、共同愛好之類的功能磕谅。

  5. 簡單消息隊列,除了Redis自身的發(fā)布/訂閱模式雾棺,我們也可以利用List來實現(xiàn)一個隊列機制膊夹,比如:到貨通知、郵件發(fā)送之類的需求捌浩,不需要高可靠放刨,但是會帶來非常大的DB壓力,完全可以用List來完成異步解耦尸饺。

  6. Session共享进统,以PHP為例助币,默認Session是保存在服務(wù)器的文件中,如果是集群服務(wù)麻昼,同一個用戶過來可能落在不同機器上奠支,這就會導(dǎo)致用戶頻繁登陸;采用Redis保存Session后抚芦,無論用戶落在那臺機器上都能夠獲取到對應(yīng)的Session信息倍谜。

  7. 一些頻繁被訪問的數(shù)據(jù),經(jīng)常被訪問的數(shù)據(jù)如果放在關(guān)系型數(shù)據(jù)庫叉抡,每次查詢的開銷都會很大尔崔,而放在redis中,因為redis 是放在內(nèi)存中的可以很高效的訪問 褥民。

此外季春,因為Redis將數(shù)據(jù)存儲在內(nèi)存中,而且發(fā)送給Redis的命令請求并不會經(jīng)過典型的查詢分析器(parser)或者查詢優(yōu)化器(optimizer)進行處理消返,所以對Redis存儲的數(shù)據(jù)執(zhí)行隨機寫的速度總是非常迅速的载弄。

相關(guān)鏈接
Redis官網(wǎng):(https://redis.io/
Redis開源地址:(https://github.com/antirez/redis
Redis中文網(wǎng):(http://www.redis.cn/

======返回目錄======

>>> 下一篇:Redis的安裝與配置說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市撵颊,隨后出現(xiàn)的幾起案子宇攻,更是在濱河造成了極大的恐慌,老刑警劉巖倡勇,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逞刷,死亡現(xiàn)場離奇詭異,居然都是意外死亡妻熊,警方通過查閱死者的電腦和手機夸浅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扔役,“玉大人帆喇,你說我怎么就攤上這事√浚” “怎么了番枚?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長损敷。 經(jīng)常有香客問我,道長深啤,這世上最難降的妖魔是什么拗馒? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮溯街,結(jié)果婚禮上诱桂,老公的妹妹穿的比我還像新娘洋丐。我一直安慰自己,他們只是感情好挥等,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布友绝。 她就那樣靜靜地躺著,像睡著了一般肝劲。 火紅的嫁衣襯著肌膚如雪迁客。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天辞槐,我揣著相機與錄音掷漱,去河邊找鬼。 笑死榄檬,一個胖子當著我的面吹牛卜范,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹿榜,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼海雪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了舱殿?” 一聲冷哼從身側(cè)響起奥裸,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怀薛,沒想到半個月后刺彩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡枝恋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年创倔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焚碌。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡畦攘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出十电,到底是詐尸還是另有隱情知押,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布鹃骂,位于F島的核電站台盯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏畏线。R本人自食惡果不足惜静盅,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寝殴。 院中可真熱鬧蒿叠,春花似錦明垢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至施绎,卻和暖如春溯革,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背粘姜。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工鬓照, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人孤紧。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓豺裆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親号显。 傳聞我的和親對象是個殘疾皇子臭猜,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 介紹 Redis是一個開源的高性能的key-value存儲系統(tǒng)。具有以下特點:1押蚤、Redis支持數(shù)據(jù)的持久化蔑歌,可以...
    tracyzht閱讀 10,254評論 0 4
  • (1)什么是redis? Redis 是一個基于內(nèi)存的高性能key-value數(shù)據(jù)庫。 (有空再補充揽碘,有理解錯誤或...
    緣來是你ylh閱讀 204評論 0 2
  • (1)什么是redis? Redis 是一個基于內(nèi)存的高性能key-value數(shù)據(jù)庫次屠。 (有空再補充,有理解錯誤或...
    走過路過_97c2閱讀 700評論 0 1
  • redis主題 01_Redis介紹和安裝運行02_Jedis的介紹和使用03_Redis數(shù)據(jù)類型和數(shù)據(jù)操作的命令...
  • Redis概述 1.1、Redis介紹 redis是一款基于內(nèi)存的緩存系統(tǒng)或者數(shù)據(jù)庫掖桦。支持持久化本昏。 redis支持...
    楓葉魚水閱讀 390評論 0 1