redis 單節點,集羣,哨兵 部署

 

redis集羣安裝node

1.環境

redis版本:5.0.5redis

操做系統:ubuntu 14.04以上版本或內核4.2.0-27-generic以上ubuntu

ruby:sudo apt-get install rubyruby

2.單節點安裝

2.1.下載

http://download.redis.io/releases/redis-5.0.5.tar.gzapp

2.2.解壓

tar -xvf redis-5.0.5.tar.gz測試

2.3.編譯安裝

咱們安裝到opt下面ui

sudo mv redis-5.0.5 /opt/redisspa

給當前用戶賦權(root不須要此操做)操作系統

sudo chown -R 用戶名:用戶組 /opt/redis線程

進入到/opt/redis

cd /opt/redis

編譯

make


 

編譯測試make test
















 置redis.confvi redis.conf修改daemonizeno爲daemonizeyes修改最大內存2G(redis的內存爲物理內存的0.75,就是說,物理內存*0.75/節點數)修改#maxmemory爲maxmemory 2147483648修改日誌文件logfile "redis.log"啓動服務:./src/redis-server redis.conf驗證是否啓動:ps -ef|grep reids

2.4.測試

./src/redis-cli

set aa 1

get aa

del aa

keys *



 


到此,咱們單節點redis安裝成功

2.5.配置密碼

中止redis服務

./src/redis-cli shutdown





配置redis.confvi redis.conf修改#requirepass foobaredrequirepass 123456(密碼123456,能夠本身修改。刪除#啓動服務:./src/redis-server redis.conf

登錄加-a 指定密碼

./src/redis-cli -a 123456

3.集羣安裝

3.1.安裝

集羣計劃3主、三從,一共六個節點。生產狀況下,須要6臺主機。最低兩個主機,三個主節點在一個主機,三個從節點在一個主機。本地模擬配置,是一個主機。

規劃主節點端口:700一、700二、7003

從節點端口:700四、700五、7006

sudo mkdir /opt/redis_cluster

sudo mkdir /opt/redis_cluster/

sudo mkdir /opt/redis_cluster/7001

sudo mkdir /opt/redis_cluster/7002

sudo mkdir /opt/redis_cluster/7003

sudo mkdir /opt/redis_cluster/7004

sudo mkdir /opt/redis_cluster/7005

sudo mkdir /opt/redis_cluster/7006

給文件夾賦權

sudo chown -R 用戶名:用戶組 /opt/redis_cluster/

複製redis.conf文件到/opt/redis_cluster/7001

sudo cp /opt/redis/redis.conf /opt/redis_cluster/7001/

配置redis.conf文件

vi /opt/redis_cluster/7001/redis.conf

修改:

端口












port 7001啓用集羣cluster-enabled yes集羣節點文件cluster-config-file nodes.conf集羣超時設置cluster-node-timeout 5000開啓aof模式appendonly yes修改線程問家pidfile /var/run/redis_7001.pid配置訪問密碼

requirepass 123456

配置訪問主節點 的密碼

masterauth 123456

後臺運行

daemonize yes

數據存放目錄

dir /opt/redis_cluster/7001

註釋bind

#bind 127.0.0.1




修改最大內存2G(redis的內存爲物理內存的0.75,就是說,物理內存*0.75/節點數)修改#maxmemory爲maxmemory 2147483648修改日誌保存文件logfile "redis.log"


 


 

把/opt/redis_cluster/7001/redis.conf複製到/opt/redis_cluster/700二、/opt/redis_cluster/700三、/opt/redis_cluster/700四、/opt/redis_cluster/700五、/opt/redis_cluster/7006下

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7002/

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7003/

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7004

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7005

cp /opt/redis_cluster/7001/redis.conf /opt/redis_cluster/7006

修改端口、和線程文件

sed -i "s/7001/7002/g" /opt/redis_cluster/7002/redis.conf

sed -i "s/7001/7003/g" /opt/redis_cluster/7003/redis.conf

sed -i "s/7001/7004/g" /opt/redis_cluster/7004/redis.conf

sed -i "s/7001/7005/g" /opt/redis_cluster/7005/redis.conf

sed -i "s/7001/7006/g" /opt/redis_cluster/7006/redis.conf

動redis

cd /opt/redis_cluster/7001

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7002

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7003

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7004

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7005

/opt/redis/src/redis-server redis.conf

cd /opt/redis_cluster/7006

/opt/redis/src/redis-server redis.conf






























查看啓動節點ps -ef|grep redis建立集羣/opt/redis/src/redis-cli --cluster create 192.168.3.153:7001 192.168.3.153:7002 192.168.3.153:7003 --cluster-replicas 0 -a 123456配置集羣主從複製查看集羣狀態/opt/redis/src/redis-cli -c -p 7001 -a 123456 cluster nodes動態添加節點添加節點/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7004/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7005/opt/redis/src/redis-cli -c -a 123456 -p 7001 cluster meet 192.168.3.153 7006設置7004爲7001的節點/opt/redis/src/redis-cli -c -a 123456 -p 7004 cluster REPLICATEbd88b8e1a32341b90eb0174cc13f227110d4cd45(是主節點的編號,須要自行修改)設置7005爲7002的節點/opt/redis/src/redis-cli -c -a 123456 -p 7005 cluster REPLICATE bd88b8e1a32341b90eb0174cc13f227110d4cd45(是主節點的編號,須要自行修改)設置7006爲7003的節點/opt/redis/src/redis-cli -c -a 123456 -p 7006 cluster REPLICATE b7716a9a899e4b12a2f368e2e07f0c97fdefa248(是主節點的編號,須要自行修改)查看集羣信息集羣搭建完畢

3.2.驗證

登錄:/opt/redis$ src/redis-cli -c -a 123456 -p 7001

set aa 1

set bb 1


  



















咱們發現aa寫在7001節點上,bb寫在7002節點上中止7001節點shutdown咱們發現aa還能夠取到1,可是在7004個節點上查看集羣狀態cluster nodes咱們發現7001已經disconnected了,7004是master節點啓動7001/opt/redis/src/redis-server /opt/redis_cluster/7001/redis.conf查看集羣狀態我 們看到7001已經恢復,變爲slave節點咱們的高可用配置成功。任何一個節點掛了不受影響。可是若是是主從都掛了,還會損失數據,這個損失部署不是平均1/3直接,是根據key的hash分佈來講的。

4.哨兵模式





哨兵模式是對於單個主歷來說的。安裝一個主節點、兩個從節點、三個哨兵主節點:8001從節點:8002、8003三個哨兵:12001、12002、12003、

4.1.安裝

創建redis 文件夾

sudo mkdir /opt/sentinel/redis8001

sudo mkdir /opt/sentinel/redis8002

sudo mkdir /opt/sentinel/redis8003

創建sentinel文件夾

sudo mkdir /opt/sentinel/sentinel12001

sudo mkdir /opt/sentinel/sentinel12002

sudo mkdir /opt/sentinel/sentinel12003

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12001

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12002

cp /opt/redis/sentinel.conf /opt/sentinel/sentinel12003

修改權限(root用戶不須要)

sudo chown -R 用戶名:用戶組 /opt/sentinel/

4.1.1.配置redis節點

配置redis8001節點

vi /opt/sentinel/redis8001/redis.conf

註釋bind

#bind 127.0.0.1

修改端口

port 8001

在後臺執行

daemonize yes

數據存放目錄

dir /opt/sentinel/redis8001








主節點密碼masterauth 123456本節點密碼requirepass 123456修改最大內存2G(redis的內存爲物理內存的0.75,就是說,物理內存*0.75/節點數)修改#maxmemory爲maxmemory 2147483648修改日誌文件logfile "redis.log"

配置redis8002節點

cp /opt/sentinel/redis8001/redis.conf /opt/sentinel/redis8002/redis.conf

vi /opt/sentinel/redis8002/redis.conf

註釋bind

#bind 127.0.0.1

修改端口

port 8002

在後臺執行

daemonize yes

數據存放目錄

dir /opt/sentinel/redis8002








配置複製節點replicaof 192.168.3.153 8001主節點密碼masterauth 123456本節點密碼requirepass 123456

配置redis8003節點

cp /opt/sentinel/redis8001/redis.conf /opt/sentinel/redis8003/redis.conf

vi /opt/sentinel/redis8002/redi3.conf

註釋bind

#bind 127.0.0.1

修改端口

port 8003

在後臺執行

daemonize yes

數據存放目錄

dir /opt/sentinel/redis8003










配置複製節點replicaof 192.168.3.153 8001主節點密碼masterauth 123456本節點密碼requirepass 123456啓動redis節點/opt/redis/src/redis-server /opt/sentinel/redis8001/redis.conf/opt/redis/src/redis-server /opt/sentinel/redis8002/redis.conf/opt/redis/src/redis-server /opt/sentinel/redis8003/redis.conf

4.1.2.配置sentinel

配置sentinel12001節點

vi /opt/sentinel/sentinel12001/sentinel.conf

修改端口

port 12001

後臺運行

daemonize yes

進程文件

pidfile /var/run/redis-sentinel-12001.pid

監控主節點名稱,當有兩個sentinel發現主節點掛了,切換節點。





















sentinel monitor mymaster 192.168.3.153 8001 2sentinel心跳每隔1分鐘發送心跳sentinel down-after-milliseconds mymaster 60000當failover開始後,在此時間內仍然沒有觸發任何failover操做,當前sentinel 將會認爲這次failoer失敗sentinel failover-timeout mymaster 180000當新master產生時,同時進行slaveof到新master並進行同步複製的slave個數,也就是同時幾個slave進行同步。由於在salve執行salveof與新master同步時,將會終止客戶端請求,所以這個值須要權衡。此值較大,意味着「集羣」終止客戶端請求的時間總和和較大,此值較小,意味着「集羣」在故障轉移期間,多個salve向客戶端提供服務時仍然使用舊數據sentinel parallel-syncs mymaster 1配置sentinel 12002節點cp /opt/sentinel/sentinel12001/sentinel.conf /opt/sentinel/sentinel12002/sentinel.conf把端口改成12002sed -i 's/12001/12002/g' /opt/sentinel/sentinel12002/sentinel.conf配置sentinel 12003節點cp /opt/sentinel/sentinel12001/sentinel.conf /opt/sentinel/sentinel12003/sentinel.conf把端口改成12003sed -i 's/12001/12003/g' /opt/sentinel/sentinel12003/sentinel.conf啓動哨兵節點/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12001/sentinel.conf/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12002/sentinel.conf/opt/redis/src/redis-sentinel /opt/sentinel/sentinel12003/sentinel.conf查看哨兵ps -ef|grep sentinel

4.2.







































驗證登錄主節點/opt/redis/src/redis-cli -p 8001 -a 123456設置aa等於1set aa 1關閉主節點shutdown退出exit登錄8002節點/opt/redis/src/redis-cli -p 8002 -a 123456查看複製節點信息info replication當前節點是從節點登錄8003節點/opt/redis/src/redis-cli -p 8003 -a 123456查看複製節點信息info replication8003節點是主節點設置aa爲3set aa 3get aa啓 動8001節點/opt/redis/src/redis-server /opt/sentinel/redis8001/redis.conf查看ps -ef|grep redis|grep 800登錄8001節點/opt/redis/src/redis-cli -p 8001 -a 123456查看複製節點info replication查 看aa的值爲3,剛纔在8003上給aa賦值3已經同步過來了

5.安裝中問題

Increased maximum number of open files to 10032 (it was originally set to 1024).

解決辦法
#查看系統限制

ulimit -a

#設置「open files」數量

ulimit -n 10032

相關文章
相關標籤/搜索