千家信息网

NoSQL之Redis——Redis群集

发表于:2024-10-04 作者:千家信息网编辑
千家信息网最后更新 2024年10月04日,实验环境用两台服务器模拟6台服务器(添加网卡)主服务器M1 192.168.13.128主服务器M2 192.168.13.135主服务器M3 192.168.13.136从服务器S1 19
千家信息网最后更新 2024年10月04日NoSQL之Redis——Redis群集

实验环境

用两台服务器模拟6台服务器(添加网卡)

主服务器M1  192.168.13.128主服务器M2  192.168.13.135主服务器M3  192.168.13.136从服务器S1   192.168.13.129从服务器S2   192.168.13.137从服务器S3   192.168.13.138

1,在两台服务器上都安装Redis

[root@localhost ~]# yum install gcc gcc-c++ make -y  ##安装环境组件[root@localhost ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/  ##挂载Password for root@//192.168.100.3/LNMP-C7:  [root@localhost ~]# cd /mnt/[root@localhost mnt]# tar zxvf redis-5.0.7.tar.gz -C /opt/  ##解压[root@localhost mnt]# cd /opt/redis-5.0.7/[root@localhost redis-5.0.7]# make  ##编译[root@localhost redis-5.0.7]# make PREFIX=/usr/local/redis/ install  ##安装[root@localhost redis-5.0.7]# cd utils/[root@localhost utils]# ./install_server.sh    ##执行脚本进行配置Welcome to the redis service installerThis script will help you easily set up a running redis serverPlease select the redis port for this instance: [6379]   ##默认端口Selecting default: 6379Please select the redis config file name [/etc/redis/6379.conf]   ##配置文件Selected default - /etc/redis/6379.confPlease select the redis log file name [/var/log/redis_6379.log]   ##日志文件Selected default - /var/log/redis_6379.logPlease select the data directory for this instance [/var/lib/redis/6379]   ##数据文件Selected default - /var/lib/redis/6379Please select the redis executable path [] /usr/local/redis/bin/redis-server##可执行文件路径[root@localhost utils]# ln -s /usr/local/redis/bin/* /usr/local/bin/   ##便于系统识别[root@localhost utils]# netstat -ntap | grep 6379tcp    0    0 127.0.0.1:6379      0.0.0.0:*      LISTEN   44510/redis-server 

2,在两台服务器上修改配置文件

[root@localhost utils]# vim /etc/redis/6379.conf #bind 127.0.0.1          ##注释第70行的监听127地址,已监听所有地址protected-mode no     ##去掉第89行注释关闭安全保护port 6379                   ##去掉第93行注释,开启端口6379daemonize yes          ##去掉第137行注释,以独立进程启动cluster-enabled yes   ##去掉第833行注释,开启群集功能cluster-config-file nodes-6379.conf  ##去掉第841行注释,群集名称文件设置cluster-node-timeout 15000             ##去掉第847行注释,群集超时时间设置appendonly yes                                ##去掉第700行注释,开启aof持久化[root@localhost utils]# /etc/init.d/redis_6379 restart   ##重启服务Stopping ...Redis stoppedStarting Redis server...[root@localhost utils]# cd /var/lib/redis/6379/[root@localhost 6379]# lsappendonly.aof  dump.rdb  nodes-6379.conf   ##生成aof,rdb和节点文件

3,在主服务器上安装rvm,Ruby控制群集软件

[root@master 6379]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3##导入key文件[root@master 6379]# curl -sSL https://get.rvm.io | bash -s stable ##安装rvm[root@localhost utils]# source /etc/profile.d/rvm.sh  ##执行环境变量[root@localhost utils]# rvm list known   ##列出ruby可以安装的版本[root@localhost utils]# rvm install 2.4.1  ##安装2.4.1 版本[root@localhost utils]# rvm use 2.4.1  ##使用rubyruby2.4.1 版本Using /usr/local/rvm/gems/ruby-2.4.1[root@localhost utils]# ruby -v   ##查看当前ruby2.4.1 版本ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux][root@localhost utils]# gem install redis  #再次安装Redis

4,在主服务器上添加两块网卡

[root@master ruby-2.4.1]# service network restart   ##重启网卡[root@master ruby-2.4.1]# systemctl stop firewalld.service   ##关闭防火墙[root@master ruby-2.4.1]# setenforce 0

5,在从服务器上也添加两块网卡

[root@slave utils]# service network restart   ##重启网卡[root@slave utils]# systemctl stop firewalld.service   ##关闭防火墙[root@slave utils]# setenforce 0

6,在master服务器上创建集群

##6个实例分为三组,每组一主一从[root@master ruby-2.4.1]# redis-cli --cluster create 192.168.13.128:6379 192.168.13.129:6379 192.168.13.135:6379 192.168.13.136:6379 192.168.13.137:6379 192.168.13.138:6379 --cluster-replicas 1##创建群集,每组一主一从>>> Performing hash slots allocation on 6 nodes...Master[0] -> Slots 0 - 5460Master[1] -> Slots 5461 - 10922Master[2] -> Slots 10923 - 16383Adding replica 192.168.13.137:6379 to 192.168.13.128:6379Adding replica 192.168.13.138:6379 to 192.168.13.129:6379Adding replica 192.168.13.136:6379 to 192.168.13.135:6379M: 6e0414dbd3045b2793b07be884d7335fd008a72d 192.168.13.128:6379     slots:[0-5460] (5461 slots) master    ##128,129,135为主M: cdea81d9007892c55c637e3416993d30fe297ba3 192.168.13.129:6379     slots:[5461-10922] (5462 slots) masterM: 6e0414dbd3045b2793b07be884d7335fd008a72d 192.168.13.135:6379     slots:[10923-16383] (5461 slots) masterS: 6e0414dbd3045b2793b07be884d7335fd008a72d 192.168.13.136:6379     replicates 6e0414dbd3045b2793b07be884d7335fd008a72d  ##136,137,138为副本S: cdea81d9007892c55c637e3416993d30fe297ba3 192.168.13.137:6379     replicates 6e0414dbd3045b2793b07be884d7335fd008a72dS: cdea81d9007892c55c637e3416993d30fe297ba3 192.168.13.138:6379     replicates cdea81d9007892c55c637e3416993d30fe297ba3...Can I set the above configuration? (type 'yes' to accept): yes  ##选择yes

7,验证群集读写原理

[root@master opt]# redis-cli -h 192.168.13.129 -p 6379   ##主服务器192.168.13.129:6379> set name zhangsan   ##创建键值对OK 192.168.13.129:6379> keys *1) "name"192.168.13.129:6379> get name"zhangsan"192.168.13.129:6379> exit[root@master opt]# redis-cli -h 192.168.13.137 -p 6379   ##从服务器192.168.13.137:6379> keys *    ##查看从上也有1) "name"192.168.13.137:6379> get name"zhangsan"[root@master opt]# redis-cli -h 192.168.13.128 -p 6379 192.168.13.128:6379> hset person age 20   ##用hash方式建立键值对(integer) 1192.168.13.128:6379> hset person name lisi(integer) 1192.168.13.128:6379> keys *1) "person"192.168.13.128:6379> hget person age   ##获取键的值"20"192.168.13.128:6379> expire person 5     ##设置键的删除时间5s(integer) 1192.168.13.128:6379> keys *1) "person"192.168.13.128:6379> keys *(empty list or set)

谢谢阅读!

0