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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

redis集群官網文檔

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

下載文檔

https://redis.io/download

23種服務腳本

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

一 環境準備

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 #不編譯安裝后面會報錯

yum -y install openssl-devel #不編譯安裝后面會報錯

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

多了幾個文件

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環境變量

vi /etc/profile

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

:wq

source /etc/profile

echo $PATH

ruby -v

4.創建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 --成功會出現creating Makefile

creating Makefile --如果沒有出現creating Makefile,執行下面的命令

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

如果上面再執行make之前不修改Makefile,將會報下面的錯誤

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 --成功會出現creating Makefile

vi Makefile

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

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

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

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

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

如果上面再執行make之前不修改Makefile,將會報下面的錯誤

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

二 創建集群

1.集群節點準備

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 連入主機的ip地址,不修改外部無法連入你的redis緩存服務器中

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

daemonize yes 開啟守護進程模式。在該模式下,redis會在后臺運行,并將進程pid號寫入至redis.conf選項pidfile設置的文件中,此時redis將一直運行,除非手動kill該進程。

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.寫批處理執行

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 ..

開啟命令執行權限

chmod +x start-all.sh

./start-all.sh

ps -ef|grep redis

4.

配置集群

# 在任意一臺上運行即可,不要在每臺機器上都運行

/app/redis/redis-cluster

創建了三個主節點,三個從節點。其中—replicas1 表示每個主節點下面有1個從節點,從節點可以是任意多個。前三個是主后三個是從

./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集群測試

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 //關閉7001節點,如果沒有-h參數,默認連接127.0.0.1,如果沒有-p參數,默認連接6379端口(所有如果用默認的,就沒有-h -p)

說明:-h+host -p+端口號 -c是要連接集群,注意坑,不加會報錯的

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

批量數據插入

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 可以用下面的方法

# 添加主庫

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

[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 作為從庫添加到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

另一種遍歷準備集群文件的方式

集群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 作為從庫添加到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 #前面是新節點 后面是集群內的節點 --添加新節點/app/redis/redis-cluster/redis-trib.rb reshard 192.168.120.81:7001 #查看集群曹點和分配

上面已經添加入了新的主節點但是沒有曹點是無法存儲數據的可以分配曹點

4個主節點平均分配一個4096個曹點

后面復制一個新的集群id

然后輸入all回車

重新查看后已經平均分配

加入新的從節點

/app/redis/redis-cluster/redis-trib.rb add-node 192.168.120.82:7004 192.168.120.81:7004#加入新的節點/app/redis/redis-cluster/7001/redis-cli -p 7004 -h 192.168.120.82#登錄新加節點

cluster replicate 3bce7fac36c78b4f8a7db2371ef48ecbed458e44 #從主節id點同步數據 id可以用 CLUSTER NODES查詢

移除集群中的主節點操作

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

參考

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

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

添加新的節點或刪除節點

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

集群命令參考

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

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。