温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

NoSQL之Redis——Redis群集

发布时间:2020-06-21 20:28:12 来源:网络 阅读:245 作者:一拳超人007 栏目:系统运维

实验环境

用两台服务器模拟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 installer This script will help you easily set up a running redis server Please select the redis port for this instance: [6379] ##默认端口 Selecting default: 6379 Please select the redis config file name [/etc/redis/6379.conf] ##配置文件 Selected default - /etc/redis/6379.conf Please select the redis log file name [/var/log/redis_6379.log] ##日志文件 Selected default - /var/log/redis_6379.log Please select the data directory for this instance [/var/lib/redis/6379] ##数据文件 Selected default - /var/lib/redis/6379 Please 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 6379 tcp 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行注释,开启端口6379 daemonize 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 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和节点文件

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,在主服务器上添加两块网卡

NoSQL之Redis——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

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

NoSQL之Redis——Redis群集

[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 - 5460 Master[1] -> Slots 5461 - 10922 Master[2] -> Slots 10923 - 16383 Adding replica 192.168.13.137:6379 to 192.168.13.128:6379 Adding replica 192.168.13.138:6379 to 192.168.13.129:6379 Adding replica 192.168.13.136:6379 to 192.168.13.135:6379 M: 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) master M: 6e0414dbd3045b2793b07be884d7335fd008a72d 192.168.13.135:6379 slots:[10923-16383] (5461 slots) master S: 6e0414dbd3045b2793b07be884d7335fd008a72d 192.168.13.136:6379 replicates 6e0414dbd3045b2793b07be884d7335fd008a72d ##136,137,138为副本 S: cdea81d9007892c55c637e3416993d30fe297ba3 192.168.13.137:6379 replicates 6e0414dbd3045b2793b07be884d7335fd008a72d S: 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) 1 192.168.13.128:6379> hset person name lisi (integer) 1 192.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) 1 192.168.13.128:6379> keys * 1) "person" 192.168.13.128:6379> keys * (empty list or set)

谢谢阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI