Redis應(yīng)用及安裝

Redis聽到最多的一句話就是Redis的使用難嗎泌绣?不難,Redis用好容易嗎孕荠?不容易,有時(shí)候覺(jué)得這句話說(shuō)的挺好攻谁,但又是讓讀者挺心里咯噔一下的稚伍,還不如不說(shuō)!

概述簡(jiǎn)介

Redis是一個(gè)開源(BSD許可)的內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)戚宦,用作數(shù)據(jù)庫(kù)个曙,緩存和消息代理。它支持?jǐn)?shù)據(jù)結(jié)構(gòu),如字符串垦搬,哈希呼寸,列表,集合猴贰,具有范圍查詢的排序集对雪,位圖,超級(jí)日志和具有半徑查詢的地理空間索引米绕。Redis具有內(nèi)置復(fù)制瑟捣,Lua腳本,LRU逐出栅干,交易和不同級(jí)別的磁盤持久性迈套,并通過(guò)Redis Sentinel提供高可用性,并通過(guò)Redis Cluster自動(dòng)分區(qū)碱鳞。
往簡(jiǎn)單的說(shuō)就是:Redis是一個(gè)開源的Key-Value存儲(chǔ)桑李,它具有以下特點(diǎn):

  • 速度非常快(每個(gè)人都知道)
  • 豐富的數(shù)據(jù)結(jié)構(gòu)窿给,包括String,List,Hash,Set,Sorted Set等
  • 單線程芙扎,免了線程切換和鎖的性能消耗(搞不懂,整天研究的并發(fā)編程在這里不適用填大?)
  • 原子操作(作為數(shù)據(jù)庫(kù)都有)
  • 可持久化(RDB與AOF)
  • 發(fā)布/訂閱 (個(gè)人認(rèn)為RabbitMQ這方面比較優(yōu)越戒洼,在微服務(wù)RPC調(diào)用這里,作服務(wù)的發(fā)現(xiàn))
  • 支持Lua腳本
  • 分布式鎖 (集群的關(guān)鍵)
  • 事務(wù) (作為數(shù)據(jù)庫(kù)都有)
  • 主從復(fù)制與高可用(Redis Sentinel)
  • 集群(3.0版本以上)

Redis數(shù)據(jù)結(jié)構(gòu)

建議直接看Redis官網(wǎng)的數(shù)據(jù)結(jié)構(gòu)允华,因?yàn)閺膩?lái)不想看二手Redis數(shù)據(jù)結(jié)構(gòu),這里簡(jiǎn)單介紹:

  • String
    這是最簡(jiǎn)單的Redis類型圈浇。如果只使用這種類型,Redis就像一個(gè)可持久化的Memcached服務(wù)器靴寂。
  • List
    Redis的List是基于雙向鏈表實(shí)現(xiàn)的磷蜀,可以支持反向查找和遍歷。
    常用案例:聊天系統(tǒng)百炬、社交網(wǎng)絡(luò)中獲取用戶最新發(fā)表的帖子褐隆、簡(jiǎn)單的消息隊(duì)列、新聞的分頁(yè)列表剖踊、博客的評(píng)論系統(tǒng)庶弃。
  • Hash
    Hash是一個(gè)String類型的field和value之間的映射表,請(qǐng)見下圖德澈,類似于.NET中的Hashtable和Dictionary歇攻。主要用來(lái)存儲(chǔ)對(duì)象,可以避免序列化的開銷和并發(fā)修改控制的問(wèn)題梆造。
  • Set
    Set也是一個(gè)列表缴守,不過(guò)它的特殊之處在于它是可以自動(dòng)排重的:當(dāng)需要存儲(chǔ)一個(gè)列表數(shù)據(jù),而又不希望出現(xiàn)重復(fù)的時(shí)候,Set是一個(gè)很好的選擇(比如ID的集合)屡穗。并且Set提供了判斷某個(gè)成員是否在一個(gè)Set集合內(nèi)的接口贴捡,這也是List所沒(méi)有的。
  • Sorted Set
    Sorted Set和Set的使用場(chǎng)景類似村砂,區(qū)別是Sorted Set會(huì)根據(jù)提供的score參數(shù)來(lái)進(jìn)行自動(dòng)排序烂斋。當(dāng)你需要一個(gè)有序的并且不重復(fù)的集合列表,那么就可以選擇Sorted Set數(shù)據(jù)結(jié)構(gòu)箍镜。常用案例:游戲中的排行榜源祈。

Redis重要特性

  • 管道
    Redis服務(wù)是一種C/S模型,提供請(qǐng)求-響應(yīng)式協(xié)議的TCP服務(wù)色迂,所以當(dāng)客戶端請(qǐng)求發(fā)出香缺,服務(wù)端處理并返回結(jié)果到客戶端,一般是以阻塞形式等待服務(wù)端的響應(yīng)歇僧,但這在批量處理連接時(shí)延遲問(wèn)題比較嚴(yán)重图张,所以Redis為了提升或彌補(bǔ)這個(gè)問(wèn)題,引入了管道技術(shù):可以做到服務(wù)端未及時(shí)響應(yīng)的時(shí)候诈悍,客戶端也可以繼續(xù)發(fā)送命令請(qǐng)求祸轮,做到客戶端和服務(wù)端互不干涉影響,服務(wù)端并最終返回所有服務(wù)端的響應(yīng)侥钳,這在促進(jìn)原有C/S模型交互的響應(yīng)速度上有了質(zhì)的提高适袜。
    特點(diǎn):在C/S交互中,客戶端可發(fā)送任意數(shù)請(qǐng)求命令舷夺,不需要等服務(wù)端響應(yīng)后再行發(fā)送請(qǐng)求苦酱;而服務(wù)端可以一次性完成并返回所有客戶端請(qǐng)求結(jié)果,也可以分批次返回請(qǐng)求結(jié)果给猾,這主要看服務(wù)端處理結(jié)果的速度而定疫萤。
  • 事務(wù)
    Redis事務(wù)是一組命令的集合。一個(gè)事務(wù)中的命令要么都執(zhí)行敢伸,要么都不執(zhí)行扯饶。如果命令在運(yùn)行期間出現(xiàn)錯(cuò)誤,不會(huì)自動(dòng)回滾池颈。
    管道與事務(wù)的區(qū)別:管道主要是網(wǎng)絡(luò)上的優(yōu)化尾序,客戶端緩沖一組命令,一次性發(fā)送到服務(wù)器端執(zhí)行饶辙,但是并不能保證命令是在同一個(gè)事務(wù)里面執(zhí)行蹲诀;而事務(wù)是原子性的,可以確保命令執(zhí)行的時(shí)候不會(huì)有來(lái)自其他客戶端的命令插入到命令序列中弃揽。

常見應(yīng)用問(wèn)題

  • 緩存穿透處理
    什么是緩存穿透?當(dāng)根據(jù)Redis key在緩存中查詢后,不存在對(duì)應(yīng)Value矿微,就應(yīng)該會(huì)在后端系統(tǒng)如DB中去查找痕慢,該Key的并發(fā)請(qǐng)求量一旦變大,那么就會(huì)對(duì)DB造成很大的壓力涌矢。解決辦法有:a.前端風(fēng)險(xiǎn)控制掖举,將惡意穿透情況排除在外;b.對(duì)查詢結(jié)果為空的情況依然進(jìn)行緩存娜庇,但緩存時(shí)間會(huì)設(shè)置得很短塔次,一般是幾分鐘。
  • 緩存雪崩處理
    什么是緩存雪崩名秀?當(dāng)緩存服務(wù)器重啟或者大量緩存集中在某一個(gè)時(shí)間段失效励负,這樣在失效的時(shí)候,也會(huì)給后端系統(tǒng)(比如DB)帶來(lái)很大壓力匕得。解決辦法有:后端連接數(shù)限制继榆,錯(cuò)誤閾值限制,超時(shí)處理汁掠,緩存失效時(shí)間均勻分布略吨,前端永不失效及后端主動(dòng)更新。
  • 緩存時(shí)長(zhǎng)
    策略定位復(fù)雜考阱,需要多維度的計(jì)算翠忠。
  • 緩存失效
    按時(shí)失效,事件失效乞榨,后端主動(dòng)更新秽之。
  • 緩存Key
    Hash、規(guī)則姜凄、前綴+Hash政溃,異常情況可人工干預(yù)。
  • Lua腳本
    服務(wù)端批量處理及事務(wù)能力态秧,有條件邏輯的可擴(kuò)展腳本董虱。使用它的好處有:減少網(wǎng)絡(luò)開銷、原子操作申鱼、可復(fù)用愤诱。
  • Limit
    可滑動(dòng)時(shí)間窗口,如應(yīng)用于Session捐友,Memcached需每次傳Key和Value淫半。

Redis簡(jiǎn)單介紹安裝(Centos)

下載地址,建議生產(chǎn)環(huán)境使用穩(wěn)定版
1匣砖、 確保已經(jīng)安裝有編譯工具make


沒(méi)有安裝make可以使用:

yum install make -y

2科吭、開始安裝
RedisDesktopManage:頁(yè)面效果:


RedisDesktopManage下載地址:https://redisdesktop.com/
Redis官網(wǎng):https://redis.io/
Redis安裝推薦博客:http://blog.csdn.net/lc1010078424/article/details/78295482
很多其它博客寫的是真的垃圾昏滴!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市对人,隨后出現(xiàn)的幾起案子谣殊,更是在濱河造成了極大的恐慌,老刑警劉巖牺弄,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姻几,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡势告,警方通過(guò)查閱死者的電腦和手機(jī)蛇捌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)咱台,“玉大人络拌,你說(shuō)我怎么就攤上這事〕郴ぃ” “怎么了盒音?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)馅而。 經(jīng)常有香客問(wèn)我祥诽,道長(zhǎng),這世上最難降的妖魔是什么瓮恭? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任雄坪,我火速辦了婚禮,結(jié)果婚禮上屯蹦,老公的妹妹穿的比我還像新娘维哈。我一直安慰自己,他們只是感情好登澜,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布阔挠。 她就那樣靜靜地躺著,像睡著了一般脑蠕。 火紅的嫁衣襯著肌膚如雪购撼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天谴仙,我揣著相機(jī)與錄音迂求,去河邊找鬼。 笑死晃跺,一個(gè)胖子當(dāng)著我的面吹牛揩局,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掀虎,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼凌盯,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼付枫!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起十气,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤励背,失蹤者是張志新(化名)和其女友劉穎春霍,沒(méi)想到半個(gè)月后砸西,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡址儒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年芹枷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莲趣。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸳慈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喧伞,到底是詐尸還是另有隱情走芋,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布潘鲫,位于F島的核電站翁逞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溉仑。R本人自食惡果不足惜挖函,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浊竟。 院中可真熱鬧怨喘,春花似錦、人聲如沸振定。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)后频。三九已至梳庆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徘郭,已是汗流浹背靠益。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工残揉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抱环,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓竖伯,卻偏偏與公主長(zhǎng)得像祟偷,于是被迫代替她去往敵國(guó)和親修肠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子嵌施,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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