一瞬捕、背景
因項(xiàng)目需要,要引入redis做緩存,就在centos7下親自安裝了一遍redis力试,剛好趁著這個(gè)機(jī)會(huì)就來(lái)把redis的概念以及單機(jī)版和集群版redis安裝步驟記錄下來(lái),在此和大家一起分享排嫌。
二畸裳、Redis介紹
1.什么是Redis?
Redis是用C語(yǔ)言開(kāi)發(fā)的一個(gè)開(kāi)源的高性能鍵值對(duì)(key-value)數(shù)據(jù)庫(kù)。它通過(guò)提供多種鍵值數(shù)據(jù)類(lèi)型來(lái)適應(yīng)不同場(chǎng)景下的存儲(chǔ)需求淳地,目前為止Redis支持的鍵值數(shù)據(jù)類(lèi)型有:字符串類(lèi)型怖糊、散列類(lèi)型、列表類(lèi)型颇象、集合類(lèi)型伍伤、有序集合類(lèi)型。
2.Redis的應(yīng)用場(chǎng)景:
緩存(數(shù)據(jù)查詢遣钳、短連接扰魂、新聞內(nèi)容、商品內(nèi)容等等)(最多使用)
分布式集群架構(gòu)中的session分離
聊天室的在線好友列表
任務(wù)隊(duì)列;(秒殺蕴茴、搶購(gòu)劝评、12306等等)
應(yīng)用排行榜
網(wǎng)站訪問(wèn)統(tǒng)計(jì)
數(shù)據(jù)過(guò)期處理(可以精確到毫秒)
三、安裝前準(zhǔn)備
1.因?yàn)閞edis是C語(yǔ)言開(kāi)發(fā)的倦淀,所以我們建議在linux上運(yùn)行蒋畜,故本文介紹在centos7上安裝redis.
2.安裝redis需要先將官網(wǎng)下載的源碼進(jìn)行編譯,編譯依賴gcc環(huán)境撞叽,如果沒(méi)有g(shù)cc環(huán)境百侧,需要安裝gcc,命令如下:
yum -y install gcc-c++
四能扒、安裝單機(jī)版redis
1.從官方網(wǎng)站下載對(duì)應(yīng)的redis源碼包,命令如下:
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
2.對(duì)源碼文件的壓縮包進(jìn)行解壓縮佣渴,命令如下:
tar -zxvf redis-3.0.0.tar.gz
3.進(jìn)入到解壓后的源碼文件夾,并對(duì)源碼進(jìn)行編譯初斑,命令如下:
cd redis-3.0.0.tar.gz && make
4.安裝編譯完成后的文件(prefix參數(shù)用來(lái)指定redis的安裝位置辛润,一般建議安裝在/usr/local/redis下)
make install PREFIX=/usr/local/redis
5.把/usr/local/redis/bin文件夾下所有文件移動(dòng)到/usr/local/redis文件夾下,并刪除/usr/local/redis/bin文件夾
mv /usr/local/redis/bin/* /usr/local/redis/ && rm -rf /usr/local/redis/bin
6.安裝完成见秤,啟動(dòng)單機(jī)版redis
1).控制臺(tái)直接啟動(dòng):cd /usr/local/redis && ./redis-server
2).后臺(tái)啟動(dòng):
I.復(fù)制源碼包下的redis.conf到redis的安裝目錄.
II.修改redis.conf,將其中daemonize no項(xiàng)修改daemonize yes
III.后臺(tái)啟動(dòng):cd /usr/local/redis && ./redis-server redis.conf
7.啟動(dòng)并測(cè)試客戶端
redis-cli -p 端口(默認(rèn)6379) -h 主機(jī)ip(默認(rèn)localhost即127.0.0.1)
五砂竖、安裝redis集群
1.redis-cluster集群架構(gòu)圖
架構(gòu)細(xì)節(jié):
(1)所有的redis節(jié)點(diǎn)彼此互聯(lián)(PING-PONG機(jī)制),內(nèi)部使用二進(jìn)制協(xié)議優(yōu)化傳輸速度和帶寬.
(2)節(jié)點(diǎn)的fail是通過(guò)集群中超過(guò)半數(shù)的節(jié)點(diǎn)檢測(cè)失效時(shí)才生效.
(3)客戶端與redis節(jié)點(diǎn)直連,不需要中間proxy層.客戶端不需要連接集群所有節(jié)點(diǎn),連接集群中任何一個(gè)可用節(jié)點(diǎn)即可
(4)redis-cluster把所有的物理節(jié)點(diǎn)映射到[0-16383]slot上,cluster 負(fù)責(zé)維護(hù)node<->slot<->value
Redis 集群中內(nèi)置了16384 個(gè)哈希槽,當(dāng)需要在 Redis 集群中放置一個(gè)key-value 時(shí)鹃答,redis 先對(duì) key 使用 crc16 算法算出一個(gè)結(jié)果乎澄,然后把結(jié)果對(duì) 16384 求余數(shù),這樣每個(gè) key 都會(huì)對(duì)應(yīng)一個(gè)編號(hào)在 0-16383 之間的哈希槽测摔,redis 會(huì)根據(jù)節(jié)點(diǎn)數(shù)量大致均等的將哈希槽映射到不同的節(jié)點(diǎn)置济。
2.創(chuàng)建集群:(說(shuō)明:由于機(jī)器有限解恰,我們先使用一臺(tái)linux服務(wù)器來(lái)創(chuàng)建6個(gè)redis實(shí)例從而創(chuàng)建一個(gè)偽集群)
第一步:在/usr/local文件夾下創(chuàng)建redis-cluster文件夾作為redis集群根目錄
cd /usr/local && mkdir redis-cluster
第二步:在redis-cluster文件夾下安裝6個(gè)redis實(shí)例,安裝步驟同單機(jī)版安裝步驟浙于。
第三步:分別編輯每個(gè)實(shí)例的redis.conf文件指定端口為7001到7006护盈,并打開(kāi)每一個(gè)配置文件中cluster-enable yes前面的注釋(即去掉'#'號(hào))。
第四步:拷貝redis源碼文件夾下的名為redis-trib.rb的ruby腳本文件到redis-cluster文件夾下
cp redis-trib.rb /usr/local/redis-cluster/
第五步:執(zhí)行該ruby腳本前羞酗,在系統(tǒng)中安裝ruby環(huán)境
1).yum -y install ruby
2).yum -y install rubygems
第六步:安裝執(zhí)行ruby腳本redis-trib.rb執(zhí)行所依賴的gem包:redis-3.0.0.gem
gem install redis-3.0.0.gem
第七步:?jiǎn)?dòng)所有的redis實(shí)例
./redis-server redis.conf
第八步:使用redis-trib.rb創(chuàng)建集群(如果是在不同的機(jī)器上安裝實(shí)例腐宋,只需要在任意一臺(tái)機(jī)器上執(zhí)行以下命令即可)
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
出現(xiàn)以下界面,證明redis集群安裝成功檀轨。
第九步:進(jìn)入任意一臺(tái)實(shí)例安裝位置胸竞,可以使用以下命令來(lái)進(jìn)行連接集群:
./redis-cli -p 7001 -c(-c說(shuō)明是連接集群,單機(jī)的時(shí)候不需要加該參數(shù))
到此参萄,我們就完成了redis的單機(jī) 以及集群版的安裝和測(cè)試撤师。
三、總結(jié)
通過(guò)這次redis安裝的經(jīng)歷拧揽,讓我感覺(jué)到遠(yuǎn)處看安裝集群什么的很困難剃盾,其實(shí)自己操作起來(lái),感覺(jué)沒(méi)有什么困難的淤袜,只要記住步驟就好了痒谴。所以不能給自己設(shè)限,什么事情都要保持一顆想要嘗試的心铡羡。