NoSQL之Redis群集配置(实践篇)
admin
2023-02-22 17:00:10
0

实验环境

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

  • IP节点
    • 主服务器
    • 192.168.144.144
    • 192.168.144.159
    • 192.168.144.154
    • 从服务器
    • 192.168.144.141
    • 192.168.144.155
    • 192.168.144.160

在主服务器与从服务器上分别添加两张网卡

NoSQL之Redis群集配置(实践篇)

[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
[root@slave utils]# service network restart         //重启网卡
[root@slave utils]# systemctl stop firewalld.service   //关闭防火墙
[root@slave utils]# setenforce 0

在两台服务器上都安装Redis

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

在主服务器上安装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                   //查看当前版本
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
[root@localhost utils]# gem install redis               //再次安装Redis

在master服务器上创建集群

[root@master ruby-2.4.1]# redis-cli --cluster create 192.168.144.144:6379 192.168.144.159:6379 192.168.144.154:6379 192.168.144.141:6379 192.168.144.155:6379 192.168.144.160:6379 --cluster-replicas 1     //创建群集,每组一主一从
>>> Performing hash slots allocation on 6 nodes...
Master[0] -> Slots 0 - 5460
Master[1] -> Slots 5461 - 10922
Master[2] -> Slots 10923 - 16383
Adding replica 192.168.144.155:6379 to 192.168.144.144:6379
Adding replica 192.168.144.160:6379 to 192.168.144.159:6379
Adding replica 192.168.144.141:6379 to 192.168.144.154:6379
M: d2aef8bb466d29891e051edd1c9c35d760c452e8 192.168.144.144:6379
   slots:[0-5460] (5461 slots) master
M: d2aef8bb466d29891e051edd1c9c35d760c452e8 192.168.144.159:6379
   slots:[5461-10922] (5462 slots) master
M: d2aef8bb466d29891e051edd1c9c35d760c452e8 192.168.144.154:6379
   slots:[10923-16383] (5461 slots) master
S: 984482d225d614b2b2b084f5c54bf197202065a0 192.168.144.141:6379
   replicates d2aef8bb466d29891e051edd1c9c35d760c452e8
S: 984482d225d614b2b2b084f5c54bf197202065a0 192.168.144.155:6379
   replicates d2aef8bb466d29891e051edd1c9c35d760c452e8
S: 984482d225d614b2b2b084f5c54bf197202065a0 192.168.144.160:6379
   replicates d2aef8bb466d29891e051edd1c9c35d760c452e8
Can I set the above configuration? (type 'yes' to accept): yes    //输入yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join

>>> Performing Cluster Check (using node 192.168.144.144:6379)
M: d2aef8bb466d29891e051edd1c9c35d760c452e8 192.168.144.144:6379
   slots:[0-16383] (16384 slots) master
   1 additional replica(s)
S: 984482d225d614b2b2b084f5c54bf197202065a0 192.168.144.155:6379
   slots: (0 slots) slave
   replicates d2aef8bb466d29891e051edd1c9c35d760c452e8
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

验证群集读写原理

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

相关内容

热门资讯

蒋万安借“725上凯道”成蓝营... 中国国民党25日将于台北凯道举办“我是人,我反毒台”集会,向民进党当局抗议中联毒油案。对此,资深媒体...
波轮式全自动洗衣机脱水时波轮转 波轮式全自动洗衣机脱水时波轮转1、衣物放置不平导致;2、排水系统发生阻塞。3、顶部的安全开关损坏;4...
洗衣机不出水怎么查原因 当洗衣机不出水时,一定是出了问题。下面就是一些可能的原因及其解决方法:1. 电源问题洗衣机不能正常工...
半自动洗衣机放不出水是什么原因... 1、检查过滤网是否堵塞。若堵塞了需要将脏东西取出来,然后再用清水将过滤网清洗干净。2、检查一下是不是...
全自动洗衣机不出水是什么原因 1、进水口的滤网被水中的杂质堵住。2、控制板上的进水继电器坏了。3、电路故障,进水电磁阀有故障或者插...
抽油烟机只通电不转怎么回事 只通电不转的故障原因和解决方法:1、电容量减小或损坏。解决方法:抽油烟机电机不转,还有嗡嗡声,一般是...
谷歌被罚9亿欧元后,特朗普称欧... 当地时间7月23日,欧盟委员会指控美国谷歌公司违反欧盟《数字市场法》,对其处以8.9亿欧元罚款。这一...
14对14,中国反击欧盟,干净... 对于欧盟的指手画脚,中国第一时间反击了。14:14。干净利落,来而不往非礼也。国际博弈,从来如此:没...
风未到,人已行!凌晨不眠!一场... 7月24日晚,台风“红霞”持续逼近,市应急管理局五楼会议室灯火通明,市应急管理局党委书记、局长李见秋...
省自然资源厅部署12号台风“红... 受今年第12号台风“红霞”影响,我省中部和南部地区有一轮强降雨过程,部分地区有较高的地质灾害风险。自...