Linux中redis集群搭建
在此我也不再叙述redis集群的投票容错什么数据分配等等一堆废话,既然需要搭建redis集群,想必多多少少也会对redis集群的一些机制有所了解的。(不了解想要了解的可以去网上搜一下redis集群有很多资料的)redis集群走起。
- 先在linux服务器上搞一个redis单机版(单机版的操作可以看我上一个博客《linux-centOS7虚拟或服务基本软件安装》https://blog.youkuaiyun.com/qq_15138689/article/details/80427467中有讲到redis单机版的安装测试,我在此就不在讲解了)
搭建redis集群初步准备工作
-
1.创建一个redis-cluster文件与各个端口节点文件
mkdir redis-cluster,我在此创建的端口分别是7000-7005 所以要依次创建7000文件到7005文件 mkdir 7000 ... 7005
-
2.复制单机版到指定的节点文件
因为我将redis安装到了/usr/local/redis文件下,进入/usr/local/redis目录下有一个bin文件,将bin文件复制到各个端口节点 文件中
cd /usr/local/redis cp bin/ 7000/ -r ...
-
删除原数据文件
进入到各个节点文件的bin目录下 依次执行
rm -rf dump.rdb
-
修改配置文件redis.conf文件
vi redis.conf
将各个端口文件里的 port :6379 依次改为各个端口的7000-7005
# cluster-enabled yes 打开
# cluster-config-file nodes-6379.conf 打开 并将nodes-6379.conf 改为你想要的名字(不能和其他几个文件里的一样)
daemonize no 将no 改为yes
appendonly no 将no 改为yes
可能会因为版本不同有的选项没有
-
创建命令文件
为了方便启动关闭在此创建几个命令文件 退到redis-cluster文件目录下
启动redis节点文件 vi start-all.sh
cd 7000
./bin/redis-server ./bin/redis.conf
cd ..
cd 7001
./bin/redis-server ./bin/redis.conf
cd ..
cd 7002
./bin/redis-server ./bin/redis.conf
cd ..
cd 7003
./bin/redis-server ./bin/redis.conf
cd ..
cd 7004
./bin/redis-server ./bin/redis.conf
cd ..
cd 7005
./bin/redis-server ./bin/redis.conf
esc :wq 退出
sh start-all.sh 启动,然后执行ps aux|grep redis 查看以下这些端口是否开启
root 1671 0.1 0.2 135216 2956 ? Ssl 15:27 0:07 ./src/redis-server *:7000 [cluster]
root 1675 0.1 0.2 135316 2956 ? Ssl 15:27 0:07 ./src/redis-server *:7001 [cluster]
root 1679 0.1 0.2 135316 2972 ? Ssl 15:27 0:07 ./src/redis-server *:7002 [cluster]
root 1683 0.1 0.2 134008 2688 ? Ssl 15:27 0:06 ./src/redis-server *:7003 [cluster]
root 1685 0.1 0.2 134004 2708 ? Ssl 15:27 0:06 ./src/redis-server *:7004 [cluster]
root 1689 0.1 0.2 134008 2716 ? Ssl 15:27 0:06 ./src/redis-server *:7005 [cluster]
root 1794 0.0 0.1 11920 1152 pts/0 S+ 15:45 0:00 ./7000/src/redis-cli -p 7000 -c
root 2008 0.0 0.0 112720 976 pts/1 R+ 16:55 0:00 grep --color=auto redis
启动成功。
关闭命令 vi shutdown-all.sh
7000 /redis-cli -p 7000 shutdown
7001/redis-cli -p 7001 shutdown
7002/redis-cli -p 7002 shutdown
7003/redis-cli -p 7003 shutdown
7004/redis-cli -p 7004 shutdown
7005/redis-cli -p 7005 shutdown
esc :wq 退出
将bin文件下的redis-trib.rb 复制到 redis-cluster目录中
cp redis-trib.rb /var/tool/redis-cluster/
-
集群马上要启动了
安装ruby
yum install ruby
安装redis接口 我在此配置了一下咱国内的镜像
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.org/
gem install redis --version 3.0.0
或者自己也可以去redis-3.0.0.gem 然后执行
gem install redis-3.0.0.gem
哈哈!终于可以启动redis集群了,等下,咱还是和上边一样创建一个启动文件吧方便吗!
vi start.sh
./redis-trib.rb create --replicas 1 192.168.140.130:7000 192.168.140.130:7001 192.168.140.130:7002 192.168.140.130:7003 192.168.140.130:7004 192.168.140.130:7005
esc :wq 退出
sh start.sh 启动
slots:0-5460 (5461 slots) master
M: db455daff299d07bdd5225b94eafc5292cab1cb7 192.168.140.130:7001
slots:5461-10922 (5462 slots) master
M: dc411bf1cfd6b9fc29d22c4df8946a21860b35b1 192.168.140.130:7002
slots:10923-16383 (5461 slots) master
S: 65479600b14a90d665f88bab8235d6f4ec914821 192.168.140.130:7003
replicates a0a19d6755e6ef36f9c73ce07cc2608a5e17a82c
S: eba08ffa6607214d77650c71084fad979e9a805d 192.168.140.130:7004
replicates db455daff299d07bdd5225b94eafc5292cab1cb7
S: 4441c1e9e8ed99ca93eb5d196716bfad3cc65ffc 192.168.140.130:7005
replicates dc411bf1cfd6b9fc29d22c4df8946a21860b35b1
Can I set the above configuration? (type 'yes' to accept):在此输入yes
.....
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
看到这个就说明启动成功了,恭喜你!开心不!
启动成功了那咱测试一下呗!万一不行呢?
在redis-cluster 目录下输入 ./7000/src/redis-cli -p 7000 -c 一定要有端口和-c 启动
127.0.0.1:7000>
输入 set 1 100
-> Redirected to slot [9842] located at 192.168.140.130:7001
OK
192.168.140.130:7001>
诶看到没,自动切换到7001了咋回事?
192.168.140.130:7001> get 1
"100"
192.168.140.130:7001>
不过我get一样可以获取到,那为啥明明是7000 咋变为7001啦!
哈哈!因为redis集群是自动分片切换的。
到此结束