Centos 7 下搭建Redis分布式集群

提示:在搭建redis分布式集群,先学会搭建单个redis

搭建单个redis 可以参照博客:https://blog.csdn.net/weixin_42338444/article/details/99708038

两台服务器,个启动三个实例,形成三主三从。

ip :192.168.74.129   192.168.74.130

1.分别在两台主机上安装redis(安装可以参照上面博客)

2.配置内核参数

systcl -w vm.overcommit_memory=1

3.创建多实例的文件夹

cd /opt/

mkdir cluster

cd cluster

mkdir 7000 7001 7002

4.修改配置文件

vi /opt/redis/redis-5.0.3/redis.conf

cluster-enabled yes(开启集群,把#去掉)

cluster-node-timeout 15000 (设置请求超时时间,默认为15秒,可以自行修改)

appendonly yes (aop日志开启,会每次进行写操作都记录一条日志)

4-1.根据不同的端口号需要设置的地方(每个端口(7000,7001,7002)分别设置)以7000端口号举例

  port 7000

  pidfile /var/run/redis_7000.pid

  logfile /var/log/redis/redis_7000.log

  dbfilename dump_7000.rdb

  appendfilename "appendonly_7000.aof"

  cluster-config-file nodes_7000.conf

5.复制配置文件到各个实例文件夹,并且对相应的端口号和参数进行配置。

cp -f /opt/redis/redis-5.0.3/redis.conf   /opt/cluster/7000/

cp -f /opt/redis/redis-5.0.3/redis.conf   /opt/cluster/7001/

cp -f /opt/redis/redis-5.0.3/redis.conf   /opt/cluster/7002/

6.设置redis-server全局命令

ln -s /opt/redis/redis-5.0.3/src/redis-server /usr/bin/redis-server

7.启动各个节点

redis-server /opt/cluster/7000/redis.conf

redis-server /opt/cluster/7001/redis.conf

redis-server /opt/cluster/7002/redis.conf

如果出现一下错误

*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 171
>>> 'logfile /var/log/redis/redis_7001.log'
Can't open the log file: No such file or directory

解决方案

cd /var/log/
mkdir redis
再次执行上面第7步命令

8.--使用下面命令查看是否都启动成功,ip和端口号是否都正确。

ps -ef|grep redis | grep cluster

9.防火墙开通策略 (防火墙未开就不用配置)

   firewall-cmd --zone=public --add-port=7000-7002/tcp --permanent

   firewall-cmd --zone=public --add-port=17000-17002/tcp --permanent 
(必须开集群总线端口,集群总线端口=端口号 +10000,例:7000的集群总线端口是17000。这个集群总线端口不开放,集群的时候外部服务器的节点添加不进来)

10.关闭firewall:CentOS 7.0默认使用的是firewall作为防火墙

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)

11. 以上1-9的步骤在另一台服务器上也需要配置,另一台服务器端口可以设为7003,7004,7005,或者跟上面一样也可以

12.创建集群方式

  (1)安装ruby环境

yum -y install ruby rubygems

  (2)跟新gem源

gem sources --remove https://gems.ruby-china.com

解决redis requires ruby version 2.3.0

CentOS7 yum库中ruby的版本支持到 2.0.0,但是gem安装redis需要最低是2.3.0,采用rvm来更新ruby

1.1安装curl

yum -y install curl

1.2安装rvm

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3  
curl -L get.rvm.io | bash -s stable   

遇到以下报错

[root@localhost ~]# curl -L get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   194  100   194    0     0    242      0 --:--:-- --:--:-- --:--:--   242
100 24168  100 24168    0     0  10201      0  0:00:02  0:00:02 --:--:-- 42474
Downloading https://github.com/rvm/rvm/archive/1.29.8.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.8/1.29.8.tar.gz.asc
gpg: 于 2019年05月08日 星期三 22时14分49秒 CST 创建的签名,使用 RSA,钥匙号 39499BDB
gpg: 无法检查签名:没有公钥
GPG signature verification failed for '/usr/local/rvm/archives/rvm-1.29.8.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.8/1.29.8.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:
 
    gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
 
or if it fails:
 
    command curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
    command curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -
 
In case of further problems with validation please refer to https://rvm.io/rvm/security

根据上面提示,安装前先执行

gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

1.3修改 rvm下载 ruby的源,到 Ruby China 的镜像

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

1.4设置rvm全局命令

cp -f /usr/local/rvm/bin/vim   /usr/bin/

1.5查看rvm库中已知的ruby版本

rvm list known

1.6安装一个ruby版本

rvm install 2.3.3

1.7使用一个ruby版本

rvm use 2.3.3

1.8设置默认版本

rvm use 2.3.3 --default

1.9卸载一个已知版本

rvm remove 2.0.0

2.0查看ruby版本

ruby --version

13.使用gem安装redis和ruby接口

 gem install redis

14.创建集群

cd /opt/redis/redis-5.0.3/src/

15.redis版本比较低(redis官方提供了redis-trib.rb 这个工具,就这解压目录src目录中,第3步中已将它复制到/usr/local/bin目录中,可以直接在命令行中使用。)

./redis-trib.rb create --replicas 1  192.168.74.129:7000 192.168.74.129:7001 192.168.74.129:7002 192.168.74.130:7003 192.168.74.130:7004 192.168.74.130:7005

#留意一下屏幕,会有一句(type 'yes' or accept),输入yes,回车。(意思是:接受自主分配三主三从)

如果使用redis版本为5.0.3 相对较高版本使用一下命令创建集群

./redis-cli --cluster create 192.168.74.129:7000 192.168.74.129:7001 192.168.74.129:7002 192.168.74.130:7003 192.168.74.130:7004 192.168.74.130:7005 --cluster-replicas 1

#留意一下屏幕,会有一句(type 'yes' or accept),输入yes,回车。(意思是:接受自主分配三主三从)

16.验证集群

  在第一台服务器上连接集群的某一端口(7000)节点,在另一台服务器上连接某一端口(7002)节点,连接方式为:redis-cli -h 192.168.74.129 -c -p 7000(加参数 -c 可以连接到集群,因为redis.conf将bind改为了ip地址,所以 -h 不可以省略)
在7000节点上执行命令  set hello world
在另一台服务器上7002节点执行命令查看kay为‘hello’的内容 get hello
说明集群运行正常

参照:https://blog.csdn.net/qq_39244264/article/details/80277484

          https://blog.csdn.net/Gushiyuta/article/details/90770681

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页