初識(shí)redis

redis簡(jiǎn)介

  • redis是一種基于鍵值對(duì)key芒帕、value的NoSQL內(nèi)存數(shù)據(jù)庫(kù)丰介,同時(shí)它會(huì)把內(nèi)存的數(shù)據(jù)利用快照和日志的形式保存到硬盤(pán)上,即使發(fā)生斷電带膀,內(nèi)存中的數(shù)據(jù)也不會(huì)完全丟失(會(huì)丟失未同步到硬盤(pán)上的數(shù)據(jù))。redis執(zhí)行命令的速度非陈着矗快敛纲,官方給出的數(shù)據(jù)是讀寫(xiě)性能可以達(dá)到10w/s剂癌。這主要得益于它的數(shù)據(jù)是放在內(nèi)存中的珍手,同時(shí)redis基于c語(yǔ)言實(shí)現(xiàn),這種貼近操作系統(tǒng)的語(yǔ)言寡具,執(zhí)行速度相對(duì)會(huì)更快稚补。此外,redis的單線程架構(gòu)厦坛,預(yù)防了多線程可能產(chǎn)生的并發(fā)競(jìng)爭(zhēng)問(wèn)題乍惊。
  • redis全稱是Remote Dictionary Server润绎,它主要提供了字符串、哈希表莉撇、列表、集合其障、有序集合這5中數(shù)據(jù)結(jié)構(gòu)涂佃,并提供了鍵過(guò)期功能,可以用來(lái)實(shí)現(xiàn)緩存抚笔。提供了發(fā)布訂閱功能殊橙,可以用來(lái)實(shí)現(xiàn)消息系統(tǒng),還有流水線(Pipeline)功能叠纹,這樣客戶端能夠一批命令一次性傳到redis誉察,能減少網(wǎng)絡(luò)的開(kāi)銷(xiāo)惹谐。
  • 把數(shù)據(jù)放在內(nèi)存始終是不夠安全,一旦斷電或者進(jìn)程崩潰數(shù)據(jù)就會(huì)丟失鸿秆,對(duì)此redis提供了兩種持久化方式卿叽,rdb和aof考婴,redis可以使用兩種策略將內(nèi)存的數(shù)據(jù)保存到硬盤(pán)中催烘。redis還提供了復(fù)制功能,實(shí)現(xiàn)了多個(gè)相同數(shù)據(jù)的redis副本喳钟,這進(jìn)一步保證了數(shù)據(jù)的安全可靠。redis從2.8版本正式提供了redis sentinel蔽午,它能夠?qū)崿F(xiàn)redis節(jié)點(diǎn)的故障發(fā)現(xiàn)和故障自動(dòng)轉(zhuǎn)移酬蹋,在3.0版本提供了redis cluster抽莱,它是redis真正的分布式實(shí)現(xiàn)食铐,提供了高可用(自動(dòng)進(jìn)行主從切換進(jìn)行故障轉(zhuǎn)移), 讀寫(xiě)和容量的拓展性(可動(dòng)態(tài)向集群增加虐呻、減少節(jié)點(diǎn)斟叼,實(shí)現(xiàn)水平擴(kuò)縮容)。

redis的使用場(chǎng)景

  • 用作緩存朗涩。 緩存機(jī)制幾乎在所有的大型網(wǎng)站都有使用谢床,redis提供了鍵值過(guò)期時(shí)間設(shè)置厘线,并提供了靈活控制最大內(nèi)存和內(nèi)存溢出后的淘汰策略皆的,非常方便用于實(shí)現(xiàn)網(wǎng)站的緩存费薄。
  • 排行榜楞抡、計(jì)數(shù)器系統(tǒng)。 redis提供了列表和有序集合數(shù)據(jù)結(jié)構(gòu)召廷,并且天然支持計(jì)數(shù)功能,合理運(yùn)用這些數(shù)據(jù)結(jié)構(gòu)能很好的服務(wù)于排行榜和計(jì)數(shù)器系統(tǒng)先紫。
  • 消息隊(duì)列系統(tǒng)筹煮。 消息隊(duì)列系統(tǒng)具有業(yè)務(wù)解耦遮精、非實(shí)時(shí)業(yè)務(wù)削峰等特性,可以說(shuō)是一個(gè)大型網(wǎng)站必備的基礎(chǔ)組件, redis提供了發(fā)布與訂閱和阻塞隊(duì)列的功能本冲,雖然和專業(yè)的消息隊(duì)列比還不夠強(qiáng)大准脂,但基本可以滿足一般的消息隊(duì)列功能。

redis不適合干啥

  • 從數(shù)據(jù)規(guī)模角度上看檬洞, redis更適合存放小規(guī)模數(shù)據(jù)狸膏。redis的數(shù)據(jù)是放在內(nèi)存中,雖然現(xiàn)在內(nèi)存已經(jīng)足夠便宜添怔,但如果數(shù)據(jù)量非常大湾戳,比如幾億用戶的行為數(shù)據(jù),若使用redis來(lái)存儲(chǔ)澎灸,經(jīng)濟(jì)成本還是相當(dāng)高的院塞。
  • 從數(shù)據(jù)冷熱角度看拦止,例如視頻網(wǎng)站,視頻信息基本上各個(gè)業(yè)務(wù)線都是經(jīng)常操作的數(shù)據(jù)(熱數(shù)據(jù)), 而用戶的觀看記錄不一定是經(jīng)常要訪問(wèn)的數(shù)據(jù)(冷數(shù)據(jù))榴徐,如果將這些冷數(shù)據(jù)放到redis上存儲(chǔ)是對(duì)內(nèi)存的一種浪費(fèi),而熱數(shù)據(jù)放在redis里可以加快讀寫(xiě)袱贮,也可以減輕后端存儲(chǔ)的負(fù)載。

redis的安裝

? redis能夠兼容絕大部分的posix系統(tǒng),例如linux常柄,osx,freebsd,其中比較典型的是linux操作系統(tǒng)品姓。 在linux安裝軟件,一種方法是通過(guò)各個(gè)操作系統(tǒng)的軟件管理軟件進(jìn)行安裝,如ubuntu的apt友驮, 由于redis的更新速度較快,這些管理工具不一定能安裝到最新的版本。所以推薦另一種方式:使用源碼安裝,源碼安裝redis也不復(fù)雜6步即可完成算柳, 以3.0.7版本為例:

  • wget http://download.redis.io/releases/redis-3.0.7.tar.gz
  • tar xvf redis-3.0.7.tar.gz // 解壓
  • ln -s redis-3.0.7 redis // 建立軟連接 指向redis-3.0.7何荚,這樣是為了不把redis目錄固定在指定版本上妥衣,有利于版本升級(jí)
  • cd redis
  • make // 編譯
  • make install // 把編譯后的二進(jìn)制文件放到指定目錄下 如/usr/local/bin蜂筹, 方便在任何目錄下執(zhí)行redis命令

配置、操作redis

??redis安裝后, 在src和/usr/local/bin目錄下多了幾個(gè)以redis開(kāi)頭的可執(zhí)行文件,它們便是redis shell疆瑰, 用于啟動(dòng)跟衅、停止掰读、檢測(cè)he修復(fù)redis的持久化文件以及檢測(cè)redis性能雇初。


image.png
  • 啟動(dòng)redis刊橘。 有三種方法啟動(dòng)redis: 默認(rèn)配置攒庵、運(yùn)行配置、配置文件啟動(dòng)。 直接使用redis-server啟動(dòng)redis就是使用默認(rèn)配置(redis目錄下的redis.conf文件)僚祷。 redis-server --configKey1 configValue1 --configKey2 configValue2 , 屬于運(yùn)行配置感昼。將配置寫(xiě)到指定文件里蜕琴,redis-server redis.conf
image.png
  • redis命令行客戶端雏搂。 redis-cli -h {host} -p {port}是一種交互的方式芙沥。 redis-cli -h {host} -p {port} {command} 可以直接得到命令的返回結(jié)果配紫。 注意: 如果-h沒(méi)有參數(shù) 默認(rèn)連接127.0.0.1植袍,-p如果沒(méi)有參數(shù)厅篓,默認(rèn)為6379端口。
  • 停止redis服務(wù), redis提供了shutdown命令來(lái)停止redis服務(wù)叼耙。 redis-cli shutdown倾贰。這種關(guān)閉進(jìn)程的方式會(huì)先斷開(kāi)客戶端的連接,然后生成持久化文件,是一種相對(duì)優(yōu)雅的關(guān)閉方式。如果通過(guò)kill -9 強(qiáng)殺redis服務(wù), 不但不會(huì)做持久化操作,還會(huì)造成緩沖區(qū)等資源不能優(yōu)雅關(guān)閉,可能導(dǎo)致丟失數(shù)據(jù)。 shutdown還有一個(gè)參數(shù)讼呢,表示是否在關(guān)閉redis服務(wù)前生成持久化文件础爬, redis-cli shutdown save|nosave 供炎。

總結(jié)

本文介紹了redis的基本概念竭钝、使用場(chǎng)景庇茫、安裝以及操作顷霹,屬于概述性質(zhì)的炭臭, 為了讓大家對(duì)redis有個(gè)整體的認(rèn)識(shí),更多的內(nèi)容和細(xì)節(jié)會(huì)在后面的文章一一介紹界拦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子齐帚,更是在濱河造成了極大的恐慌湘今,老刑警劉巖摩瞎,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件曹阔,死亡現(xiàn)場(chǎng)離奇詭異奢米,居然都是意外死亡城侧,警方通過(guò)查閱死者的電腦和手機(jī)侨歉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)屋摇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人幽邓,你說(shuō)我怎么就攤上這事炮温。” “怎么了牵舵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵柒啤,是天一觀的道長(zhǎng)倦挂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)担巩,這世上最難降的妖魔是什么方援? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮涛癌,結(jié)果婚禮上犯戏,老公的妹妹穿的比我還像新娘。我一直安慰自己祖很,他們只是感情好笛丙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著假颇,像睡著了一般胚鸯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上笨鸡,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天姜钳,我揣著相機(jī)與錄音,去河邊找鬼形耗。 笑死哥桥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的激涤。 我是一名探鬼主播拟糕,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼倦踢!你這毒婦竟也來(lái)了送滞?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤辱挥,失蹤者是張志新(化名)和其女友劉穎犁嗅,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體晤碘,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡褂微,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了园爷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宠蚂。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖腮介,靈堂內(nèi)的尸體忽然破棺而出肥矢,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布甘改,位于F島的核電站旅东,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏十艾。R本人自食惡果不足惜抵代,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望忘嫉。 院中可真熱鬧荤牍,春花似錦、人聲如沸庆冕。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)访递。三九已至晦嵌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拷姿,已是汗流浹背惭载。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留响巢,地道東北人描滔。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像踪古,于是被迫代替她去往敵國(guó)和親含长。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,947評(píng)論 2 89
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理伏穆,服務(wù)發(fā)現(xiàn)茎芋,斷路器,智...
    卡卡羅2017閱讀 134,699評(píng)論 18 139
  • 超強(qiáng)蜈出、超詳細(xì)Redis入門(mén)教程 轉(zhuǎn)載2017年03月04日 16:20:02 16916 轉(zhuǎn)載自: http://...
    邵云濤閱讀 17,451評(píng)論 3 313
  • 做一個(gè)寡言卻心有一片海的人。 我素來(lái)喜歡這樣的一種人生狀態(tài)涛酗。寡言铡原,并非無(wú)知,或是不合群商叹,懂得適時(shí)沉默的人燕刻,內(nèi)心往往...
    存愛(ài)SL共創(chuàng)未來(lái)閱讀 369評(píng)論 0 0
  • 我才剛剛開(kāi)始卵洗。
    何某某_de8e閱讀 44評(píng)論 0 0