redis集群部署

Redis的安裝部署手冊(cè)

單機(jī)部署:

1.安裝gcc

yum install gcc-c++

yum install ruby

2.上傳tar包到/src目錄

3. 解壓

tar -zxvf redis-3.2.8.tar.gz

4.進(jìn)入redis-3.2.8

cd redis-3.2.8/

5.編譯

make

6.安裝

make PREFIX=/usr/local/redis install

redis-server的路徑在/usr/local/redis/bin/下

或者

make install

redis-server默認(rèn)安裝的路徑就是/usr/local/bin/

7.把redis配置文件拷貝到安裝目錄

cp redis.conf /usr/local/redis

8.啟動(dòng)(這里使用的路徑是:PREFIX=/usr/local/redis)

cd /usr/local/redis

./bin/redis-server

后端啟動(dòng)

1.修改配置文件

cd /usr/local/redis

vim redis.conf

找到daemonize no將其改為yes

2.啟動(dòng)

./bin/redis-server ./redis.conf

3.查看redis程序狀態(tài)

ps -ef | grep -i redis

4.關(guān)閉redis

./bin/redis-cli shutdown

出現(xiàn)以下問(wèn)題:

WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommi

t_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.

解決方案:

echo vm.overcommit_memory=1 >> /etc/sysctl.conf

sysctl vm.overcommit_memory=1

出現(xiàn)以下問(wèn)題:

WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues

with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

解決方案:

echo never > /sys/kernel/mm/transparent_hugepage/enabled

vi /etc/rc.d/rc.local 或者vi /etc/rc.local

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then

echo never > /sys/kernel/mm/transparent_hugepage/enabled

fi

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then

echo never > /sys/kernel/mm/transparent_hugepage/defrag

fi

chmod +x /etc/rc.d/rc.local

重啟

出現(xiàn)以下問(wèn)題:

WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128

.

解決方案

vi /etc/sysctl.conf

net.core.somaxconn= 1024

wq

sysctl -p

測(cè)試

./bin/redis-cli

[root@localhost redis]# ./bin/redis-cli

//檢查網(wǎng)絡(luò)是否可以

127.0.0.1:6379> ping

PONG

//設(shè)置一個(gè)鍵值對(duì)

127.0.0.1:6379> set name cheny

OK

//獲取剛剛設(shè)置的鍵值對(duì)

127.0.0.1:6379> get name

"cheny"

redis后臺(tái)啟動(dòng)

vi /usr/local/redis/redis.conf

daexxx=yes

wq

./bin/redis-server ./redis.conf (沒(méi)有-c參數(shù))

開(kāi)啟6379端口

CentOS 7 采用了 firewalld 防火墻

firewall-cmd --query-port=6379/tcp

no

firewall-cmd --add-port=6379/tcp

yes

firewall-cmd --permanent --add-service=http

firewall-cmd --permanent --add-port=6379/tcp

firewall-cmd --reload

集群搭建(三組六從)

1.建立集群目錄

cd /usr/local/src/redis-3.2.8

mkdir cluster

2.建立7000目錄

cd cluster

mkdir 7000

3.復(fù)制redis.conf文件到7000下

cd /usr/local/src/redis-3.2.8

cp redis.conf cluster/7000

4.修改7000下的redis.conf

cd /usr/local/src/redis-3.2.8/cluster/7000

vim redis.conf

4.1關(guān)閉aof文件模式使用rdb模式

[圖片上傳失敗...(image-2cad6a-1632147565460)]

4.2.注釋bind 127.0.0.1,取消ip綁定

[圖片上傳失敗...(image-1b5096-1632147565460)]

4.3.關(guān)閉保護(hù)模式

[圖片上傳失敗...(image-3ea4e0-1632147565460)]

4.4.修改端口號(hào)

[圖片上傳失敗...(image-24d699-1632147565460)]

4.5.開(kāi)啟后臺(tái)啟動(dòng)

[圖片上傳失敗...(image-449fe7-1632147565460)]

4.6.修改pidfile

[圖片上傳失敗...(image-d65b5e-1632147565460)]

4.7修改dir文件

[圖片上傳失敗...(image-39b45f-1632147565460)]

4.8修改內(nèi)存策略

[圖片上傳失敗...(image-8ab5e7-1632147565460)]

4.9開(kāi)啟集群配置

[圖片上傳失敗...(image-74c563-1632147565460)]

4.10.開(kāi)啟集群的配置

[圖片上傳失敗...(image-26dbd1-1632147565460)]

4.11.修改集群的推選時(shí)間 [圖片上傳失敗...(image-96b4e6-1632147565459)]

5.同樣的方式7001,7002,7003,7004,7005,7006,7007,7008

5.1.復(fù)制所有文件

cd /usr/local/src/redis-3.2.8/cluster

cp -r 7000 7001

cp -r 7000 7002

cp -r 7000 7003

cp -r 7000 7004

cp -r 7000 7005

cp -r 7000 7006

cp -r 7000 7007

cp -r 7000 7008

5.2.修改7001

vim 7001/redis.conf

:%s/7000/7001/g

單擊回車

:wq

5.3.修改7002,7003,7004,7005,7006,7007,7008

同5.2

6.集群腳本

cd /usr/local/src/redis-3.2.8/cluster

vim startAll.sh

!/bin/sh

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7000/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7001/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7002/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7003/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7004/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7005/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7006/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7007/redis.conf &

/usr/local/redis/bin/redis-server /usr/local/src/redis-3.2.8/cluster/7008/redis.conf &

wq

7.安裝ruby(ruby的version于2.2.2)

7.1. 安裝RVM

命令1:

gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

命令2:

curl -sSL https://get.rvm.io | bash -s stable

命令3:

find / -name rvm -print

命令4:(加載文件)

source /usr/local/rvm/scripts/rvm

7.2.查看rvm庫(kù)中已知的ruby版本

rvm list known

7.3.安裝一個(gè)ruby版本

rvm install 2.4

7.4.使用一個(gè)ruby版本

rvm use 2.4.10

7.5.設(shè)置默認(rèn)版本

rvm use 2.4.10 --default

7.6.卸載一個(gè)已知版本(不需要做)

rvm remove 2.4.10

7.7.查看ruby版本

ruby --version

7.8.安裝gem

gem install redis

參考:https://cloud.tencent.com/developer/article/1409323

8.通過(guò)ruby創(chuàng)建集群

cd /usr/local/src/redis-3.2.8/src

./redis-trib.rb create --replicas 2 192.168.47.133:7000 192.168.47.133:7001 192.168.47.133:7002 192.168.47.133:7003 192.168.47.133:7004 192.168.47.133:7005 192.168.47.133:7006 192.168.47.133:7007 192.168.47.133:7008

顯示安裝成功

測(cè)試

cd /usr/local/src/redis-3.2.8/src

./redis-cli -p 7000 –c

set aa aa

set qq qq

9. redis集群在創(chuàng)建的時(shí)候不能配置密碼認(rèn)證,因此在集群創(chuàng)建完成之后可以配置密碼認(rèn)證:

redis-cli -p 7000
config set requirepass 123456
auth 123456
config rewrite

參考資料:https://blog.csdn.net/u011330018/article/details/106114205

https://www.cnblogs.com/wxzhe/p/10751449.html

https://www.cnblogs.com/shengdimaya/p/6800423.html

TODO redis6的版本如何集群搭建?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容