日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

redis 槽点重新分配 集群_redis集群高可用部署-cluster-槽点的迁移查看

發(fā)布時(shí)間:2024/4/11 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis 槽点重新分配 集群_redis集群高可用部署-cluster-槽点的迁移查看 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

redis集群官網(wǎng)文檔

https://redis.io/topics/cluster-tutorial

下載文檔

https://redis.io/download

23種服務(wù)腳本

https://github.com/goodboy23/shell-script-collection

docker部署redis集群

https://www.cnblogs.com/cxbhakim/p/9151720.html

https://www.cnblogs.com/wozijisun/p/6043511.html

redis集群

https://www.cnblogs.com/lykxqhh/p/5690923.html

https://blog.csdn.net/qq_42815754/article/details/82912130

主要操作文檔

http://www.52wiki.cn/docs/redis/redis-1albdinm7t228

yum install -y wget

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

wget https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.gz

wget https://rubygems.org/downloads/redis-4.0.0.gem

一 環(huán)境準(zhǔn)備

1

gcc -v

gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)

yum -y install gcc gcc-c++

yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim unzip git

yum -y install zlib-devel #不編譯安裝后面會(huì)報(bào)錯(cuò)

yum -y install openssl-devel #不編譯安裝后面會(huì)報(bào)錯(cuò)

2.解壓redis并編譯安裝

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

mkdir /app/redis/ -p

tar-xvf redis-4.0.9.tar.gz -C /app/redis

cd/app/redis/redis-4.0.9/make

make install

多了幾個(gè)文件

ls /usr/local/bin

3.編譯安裝ruby

cd

tar-xvf ruby-2.5.1.tar.gz -C /app/redis

cd/app/redis/ruby-2.5.1/./configure --prefix=/usr/local/ruby

make&& make install

ls /usr/local/ruby #查看文件

配置ruby環(huán)境變量

vi /etc/profile

export PATH=$PATH:/usr/local/ruby/bin

:wq

source /etc/profile

echo $PATH

ruby -v

4.創(chuàng)建redis-cluster集群目錄并拷貝redis的gem包以及在src下將redis-trib.rb 集群管理工具拷貝到集群目錄

cd

mkdir-p /app/redis/redis-cluster

cp redis-4.0.0.gem /app/redis/redis-cluster/cp/app/redis/redis-4.0.9/src/redis-trib.rb /app/redis/redis-cluster/cd/app/redis/redis-cluster/

5.找到原先ruby安裝目錄,并做如下修改

cd /app/redis/ruby-2.5.1/ext/zlib

ruby extconf.rb --成功會(huì)出現(xiàn)creating Makefile

creating Makefile --如果沒有出現(xiàn)creating Makefile,執(zhí)行下面的命令

ruby extconf.rb --with-zlib-dir=/usr/local/zlib/

vi Makefile

將 zlib.o: $(top_srcdir)/include/ruby.h

修改為 zlib.o: ../../include/ruby.h

make

make install

如果上面再執(zhí)行make之前不修改Makefile,將會(huì)報(bào)下面的錯(cuò)誤

make: * No rule to make target /include/ruby.h', needed byzlib.o’. Stop.

6.找到原先的ruby安裝目錄并做如下修改

cd /app/redis/ruby-2.5.1/ext/openssl

ruby extconf.rb --成功會(huì)出現(xiàn)creating Makefile

vi Makefile

將所有的$(top_srcdir)修改為 ../..($(top_srcdir)不止一個(gè))

:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替換每一行中所有 vivian 為 sky

參考:https://www.cnblogs.com/tovep/articles/2715803.html

:%s#$(top_srcdir)#../..#g #有31個(gè)

make

linking shared-object openssl.so

make install

/usr/bin/install -c -m 0755 openssl.so /usr/local/ruby/lib/ruby/site_ruby/2.5.0/x86_64-linux

installing default openssl libraries

如果上面再執(zhí)行make之前不修改Makefile,將會(huì)報(bào)下面的錯(cuò)誤

make: * No rule to make target /include/ruby.h', needed byossl.o’. Stop.

7.使用gem安裝redis的gem包

cd /app/redis/redis-cluster

gem install redis-4.0.0.gem

二 創(chuàng)建集群

1.集群節(jié)點(diǎn)準(zhǔn)備

cd /app/redis/redis-cluster/

mkdir 700{1,2,3,4,5,6}

cd /app/redis/redis-4.0.9

cp redis.conf /app/redis/redis-cluster/7001/

cp redis.conf /app/redis/redis-cluster/7002/

cp redis.conf /app/redis/redis-cluster/7003/

cp redis.conf /app/redis/redis-cluster/7004/

cp redis.conf /app/redis/redis-cluster/7005/

cp redis.conf /app/redis/redis-cluster/7006/

cd /usr/local/bin/

cp redis-server redis-cli /app/redis/redis-cluster/7001/

cp redis-server redis-cli /app/redis/redis-cluster/7002/

cp redis-server redis-cli /app/redis/redis-cluster/7003/

cp redis-server redis-cli /app/redis/redis-cluster/7004/

cp redis-server redis-cli /app/redis/redis-cluster/7005/

cp redis-server redis-cli /app/redis/redis-cluster/7006/

2.

/app/redis/redis-cluster/

修改7001-7006中的redis.conf

bind 192.168.1.62 連入主機(jī)的ip地址,不修改外部無(wú)法連入你的redis緩存服務(wù)器中

port 700X x為文件夾名稱,你在700幾就填幾

daemonize yes 開啟守護(hù)進(jìn)程模式。在該模式下,redis會(huì)在后臺(tái)運(yùn)行,并將進(jìn)程pid號(hào)寫入至redis.conf選項(xiàng)pidfile設(shè)置的文件中,此時(shí)redis將一直運(yùn)行,除非手動(dòng)kill該進(jìn)程。

pidfile /app/redis/redis-cluster/700x/redis_700x.pid x為文件夾名稱,你在700幾就填幾

cluster-enabled yes 開啟集群模式

vi /app/redis/redis-cluster/7001/redis.conf

cp /app/redis/redis-cluster/7001/redis.conf /app/redis/redis-cluster/7002/redis.conf

cp /app/redis/redis-cluster/7001/redis.conf /app/redis/redis-cluster/7003/redis.conf

cp /app/redis/redis-cluster/7001/redis.conf /app/redis/redis-cluster/7004/redis.conf

cp /app/redis/redis-cluster/7001/redis.conf /app/redis/redis-cluster/7005/redis.conf

cp /app/redis/redis-cluster/7001/redis.conf /app/redis/redis-cluster/7006/redis.conf

vi /app/redis/redis-cluster/7003/redis.conf

:%s/7001/7003/g

3.寫批處理執(zhí)行

cd /app/redis/redis-cluster

vi start-all.sh

cd 7001

./redis-server redis.conf

cd ..

cd 7002

./redis-server redis.conf

cd ..

cd 7003

./redis-server redis.conf

cd ..

cd 7004

./redis-server redis.conf

cd ..

cd 7005

./redis-server redis.conf

cd ..

cd 7006

./redis-server redis.conf

cd ..

開啟命令執(zhí)行權(quán)限

chmod +x start-all.sh

./start-all.sh

ps -ef|grep redis

4.

配置集群

# 在任意一臺(tái)上運(yùn)行即可,不要在每臺(tái)機(jī)器上都運(yùn)行

/app/redis/redis-cluster

創(chuàng)建了三個(gè)主節(jié)點(diǎn),三個(gè)從節(jié)點(diǎn)。其中—replicas1 表示每個(gè)主節(jié)點(diǎn)下面有1個(gè)從節(jié)點(diǎn),從節(jié)點(diǎn)可以是任意多個(gè)。前三個(gè)是主后三個(gè)是從

./redis-trib.rb create --replicas 1 192.168.1.62:7001 192.168.1.62:7002 192.168.1.62:7003 192.168.1.62:7004 192.168.1.62:7005 192.168.1.62:7006

yes

5集群測(cè)試

cd /app/redis/redis-cluster/7001

./redis-cli -c -h 192.168.1.62 -p 7001

./redis-cli -c -h 192.168.1.62 -p 7001 shutdown //關(guān)閉7001節(jié)點(diǎn),如果沒有-h參數(shù),默認(rèn)連接127.0.0.1,如果沒有-p參數(shù),默認(rèn)連接6379端口(所有如果用默認(rèn)的,就沒有-h -p)

說(shuō)明:-h+host -p+端口號(hào) -c是要連接集群,注意坑,不加會(huì)報(bào)錯(cuò)的

root@node62 redis-cluster]# cd /app/redis/redis-cluster/7001

[root@node62 7001]# ./redis-cli -c -h 192.168.1.62 -p 7001

192.168.1.62:7001> set name xiaohei

-> Redirected to slot [5798] located at 192.168.1.62:7002

OK

192.168.1.62:7002> get name

"xiaohei"

192.168.1.62:7002> exit

[root@node62 7001]# ./redis-cli -c -h 192.168.1.62 -p 7001

192.168.1.62:7001> CLUSTER INFO

批量數(shù)據(jù)插入

vi pl.sh

#!/bin/bashfor ((i=0;i<1000;i++))doecho-en "helloworld" | /app/redis/redis-cluster/7001/redis-cli -c -h 192.168.1.62 -p 7001 -x set name$i >>redis.log

done

sh pl.sh

添加主從

指定redis cluster中的master和slave 可以用下面的方法

# 添加主庫(kù)

[root@redis01 redis-cluster]# redis-trib.rb create 192.168.94.11:7000 192.168.94.22:7003 192.168.94.33:7006# 添加從庫(kù)

[root@redis01 redis-cluster]# redis-trib.rb add-node --slave 192.168.94.22:7001 192.168.94.11:7000 # 把192.168.94.11的7001 作為從庫(kù)添加到192.168.94.11的7000

查看集群主從情況

[root@81server 7001]# ./redis-cli -c -h 192.168.120.81 -p 7001

192.168.120.81:7001> CLUSTER NODES

另一種遍歷準(zhǔn)備集群文件的方式

集群2安裝

yum install -y gcc g++ make gcc-c++ kernel-devel automake autoconf libtool make wget tcl vim ruby rubygems unzip git

mkdir /app/redis/ -p

tar -xvf redis-4.0.9.tar.gz -C /app/redis

cd /app/redis/redis-4.0.9/

make

make && make test && make PREFIX=/usr/local/redis install

或者

make MALLOC=jemalloc & & make PREFIX=/usr/local/redis install

ls /usr/local/bin/

mkdir /data/redis/redis-cluster -p

cd /data/redis/redis-cluster/

mkdir 7000 7001 7002

for i in 0 1 2;

do echo -e "port 700$i\n\

bind `hostname -I`\n\

daemonize yes\n\

pidfile /var/run/redis_700$i.pid\n\

cluster-enabled yes\n\

cluster-config-file nodes_700$i.conf\n\

cluster-node-timeout 10100" > 700$i/redis.conf;

done

for i in 0 1 2;

do redis-server /data/redis/redis-cluster/700$i/redis.conf

done

yum install -y net-tools

netstat -antup|grep redis

[root@82server redis-cluster]# netstat -antup|grep redis

tcp??????? 0????? 0 192.168.120.82:17000??? 0.0.0.0:*?????????????? LISTEN????? 21003/redis-server

tcp??????? 0????? 0 192.168.120.82:17001??? 0.0.0.0:*?????????????? LISTEN????? 21005/redis-server

tcp??????? 0????? 0 192.168.120.82:17002??? 0.0.0.0:*?????????????? LISTEN????? 21007/redis-server

tcp??????? 0????? 0 192.168.120.82:7000???? 0.0.0.0:*?????????????? LISTEN????? 21003/redis-server

tcp??????? 0????? 0 192.168.120.82:7001???? 0.0.0.0:*?????????????? LISTEN????? 21005/redis-server

tcp??????? 0????? 0 192.168.120.82:7002???? 0.0.0.0:*?????????????? LISTEN????? 21007/redis-server

cd /app/redis/redis-cluster

./redis-trib.rb create 192.168.120.82:7001192.168.120.82:7000

./redis-trib.rb add-node --slave 192.168.120.82:7000 192.168.120.82:7001??? # 把192.168.120.82:17001 作為從庫(kù)添加到192.168.120.82:7001

./redis-trib.rb create 192.168.120.82:7000 192.168.120.82:7001

cd /app/redis/redis-cluster/

./redis-trib.rb create --replicas 1 192.168.1.62:7001 192.168.1.62:7002 192.168.1.62:7003 192.168.1.62:7004 192.168.1.62:7005 192.168.1.62:7006

yes

/app/redis/redis-cluster/7001/redis-cli -c -h 192.168.120.81 -p 7001 登錄

/app/redis/redis-cluster/redis-trib.rb add-node 192.168.120.81:7004 192.168.120.81:7001 #前面是新節(jié)點(diǎn) 后面是集群內(nèi)的節(jié)點(diǎn) --添加新節(jié)點(diǎn)/app/redis/redis-cluster/redis-trib.rb reshard 192.168.120.81:7001 #查看集群曹點(diǎn)和分配

上面已經(jīng)添加入了新的主節(jié)點(diǎn)但是沒有曹點(diǎn)是無(wú)法存儲(chǔ)數(shù)據(jù)的可以分配曹點(diǎn)

4個(gè)主節(jié)點(diǎn)平均分配一個(gè)4096個(gè)曹點(diǎn)

后面復(fù)制一個(gè)新的集群id

然后輸入all回車

重新查看后已經(jīng)平均分配

加入新的從節(jié)點(diǎn)

/app/redis/redis-cluster/redis-trib.rb add-node 192.168.120.82:7004 192.168.120.81:7004#加入新的節(jié)點(diǎn)/app/redis/redis-cluster/7001/redis-cli -p 7004 -h 192.168.120.82#登錄新加節(jié)點(diǎn)

cluster replicate 3bce7fac36c78b4f8a7db2371ef48ecbed458e44 #從主節(jié)id點(diǎn)同步數(shù)據(jù) id可以用 CLUSTER NODES查詢

移除集群中的主節(jié)點(diǎn)操作

/app/redis/redis-cluster/redis-trib.rb del-node 192.168.120.82:700440c7b155fefe9b89c6e50e08786c7ebd95d7d935 #刪除從節(jié)點(diǎn)/app/redis/redis-cluster/redis-trib.rb reshard 192.168.120.81:7001#移除主節(jié)點(diǎn)上的曹點(diǎn)/app/redis/redis-cluster/redis-trib.rb del-node 192.168.120.81:7004 3bce7fac36c78b4f8a7db2371ef48ecbed458e44 #移除主節(jié)點(diǎn)

參考

https://www.cnblogs.com/bigdevilking/p/9758143.html

https://www.cnblogs.com/ywrj/p/9531800.html

添加新的節(jié)點(diǎn)或刪除節(jié)點(diǎn)

https://www.cnblogs.com/hopeofthevillage/p/11535683.html

集群命令參考

http://www.52wiki.cn/docs/redis/redis-1albe5fp7e03r

超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的redis 槽点重新分配 集群_redis集群高可用部署-cluster-槽点的迁移查看的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。