redis群集搭建

两台服务器:模拟六个节点

需要每个服务器上面配置三个网卡

[root@localhost ~]# yum install gcc gcc-c++ make -y
[root@localhost ~]# mkdir /abc
mkdir: cannot create directory ‘/abc’: File exists
[root@localhost ~]# mount.cifs //192.168.254.10/linuxs /abc
Password for root@//192.168.254.10/linuxs:  
[root@localhost ~]# cd /abc
[root@localhost abc]# tar zxvf redis-5.0.7.tar.gz -C /opt
[root@localhost abc]# 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]# ln -s /usr/local/redis/bin/* /usr/local/bin/
[root@localhost redis-5.0.7]# cd /opt/redis-5.0.7/utils/
[root@localhost utils]# ./install_server.sh 
//一路回车,到额外路径需要手动配置
Please select the redis executable path [/usr/local/bin/redis-server] 	//输入下面配置,然后再回车
/usr/localredis/bin/redis-server
[root@localhost utils]# netstat -natp | grep 6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      16457/redis-server  

另一台服务器做同样配置,然后,接下来配置

[root@localhost utils]# hostnamectl set-hostname master
[root@localhost utils]# su
[root@master utils]# vim /etc/redis/6379.conf
  70 #bind 127.0.0.1	#注释掉bind,即监听所有
  89 protected-mode no	#关闭保护功能
  93 port 6379
 137 daemonize yes		#以独立进程启动
 700 appendonly yes		#开启aof持久化
 833 cluster-enabled yes	#开启群集
 841 cluster-config-file nodes-6379.conf		#群集的配置文件
 847 cluster-node-timeout 15000		#群集超时时间设置
[root@master utils]# cd /var/lib/redis/6379/
[root@master 6379]# ls
[root@master 6379]#
[root@master 6379]# /etc/init.d/redis_6379 restart	//重启服务
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
Starting Redis server...
[root@master 6379]# ls
appendonly.aof  dump.rdb  nodes-6379.conf

dump.rdb快照文件

另外一个slave服务器也是以上配置

[root@nginx utils]# hostnamectl set-hostname slave
[root@nginx utils]# su
[root@slave utils]# 

然后回到master,安装rvm,RUBY控制集群软件

[root@master 6379]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
//若是出现error,重新访问一下
gpg: directory ‘/root/.gnupg' created
gpg:目录“/root/.gnupg”创建
gpg: new configuration file `/root/.gnupg/gpg.conf' created
gpg:新配置文件' /root/.gnupg/gpg。配置的创建
gpg: WARNING: options in `/root/.gnupg/gpg.conf' are not yet active during this run
gpg:警告:' /root/.gnupg/gpg中的选项。在此运行期间,conf'尚未激活
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg:密匙环/根/ .gnupg / secring。gpg的创建
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg:密匙环/根/ .gnupg / pubring。gpg的创建
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg:向hkp服务器key .gnupg.net请求密钥D39DC0E3
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: /root/.gnupg/trustdb.gpg: trustdb创建
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg:密钥D39DC0E3:公钥“Michal Papis (RVM签名)<mpapis@gmail.com>”导入
gpg: no ultimately trusted keys found
gpg:没有最终找到可信密钥
gpg: Total number processed: 1
gpg:加工总数:1
gpg: imported: 1 (RSA: 1)
gpg:导入:1 (RSA: 1)
[root@master 6379]# curl -sSL https://get.rvm.io | bash -s stable
curl: (35) TCP connection reset by peer
[root@master 6379]# cd /abc
[root@master abc]# tar zxvf rvm-master.tar.gz -C /opt
[root@master abc]# cd /opt/rvm-master/
[root@master rvm-master]# ls
bin              docs           HACKING.md  man        rvm-test-rvm1
binscripts       examples       help        patches    scripts
CHANGELOG.md     FORMATTING.md  hooks       patchsets  sign-releases.sh
config           gem-cache      install     Rakefile   update-remote.sh
contrib          gem-owners.sh  lib         README.md  update-truffleruby.rb
CONTRIBUTING.md  gemsets        LICENSE     rvm-test   VERSION
[root@master rvm-master]# ./install
[root@master rvm-master]# source /etc/profile.d/rvm.sh
//按照提示,启用环境变量
[root@master rvm-master]# rvm list known
//列出可以安装的ruby版本
[root@master rvm-master]# rvm install 2.4.1
[root@master rvm-master]# ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
[root@master rvm-master]#  gem install redis
//再次安装redis

两台服务器都添加到三张网卡
在这里插入图片描述

[root@master rvm-master]# systemctl stop firewalld
[root@master rvm-master]# setenforce 0
[root@master rvm-master]# systemctl restart network
[root@master rvm-master]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.160  netmask 255.255.255.0  broadcast 192.168.247.255

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.207  netmask 255.255.255.0  broadcast 192.168.247.255

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.128  netmask 255.255.255.0  broadcast 192.168.247.255
[root@slave 6379]# systemctl stop firewalld.service 
[root@slave 6379]# setenforce 0
[root@slave 6379]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.161  netmask 255.255.255.0  broadcast 192.168.247.255

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.129  netmask 255.255.255.0  broadcast 192.168.247.255

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.247.130  netmask 255.255.255.0  broadcast 192.168.247.255

回到主服务器创建群集

[root@master1 rvm-master]# redis-cli --cluster create 192.168.247.160:6379 192.168.247.207:6379 192.168.247.128:6379 192.168.247.161:6379 192.168.247.129:6379 192.168.247.130:6379 --cluster-replicas 1
//反馈的信息输入yes回车,以下为反馈信息
>>> 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.247.129:6379 to 192.168.247.160:6379
Adding replica 192.168.247.130:6379 to 192.168.247.207:6379
Adding replica 192.168.247.161:6379 to 192.168.247.128:6379
M: 443085f98265619d4e8c85762f737099a2f9ac1c 192.168.247.160:6379
   slots:[0-5460] (5461 slots) master
M: 443085f98265619d4e8c85762f737099a2f9ac1c 192.168.247.207:6379
   slots:[5461-10922] (5462 slots) master
M: 443085f98265619d4e8c85762f737099a2f9ac1c 192.168.247.128:6379
   slots:[10923-16383] (5461 slots) master
S: 86ad85451aaf80dbb7b5a7e0accf5d040dcd95fc 192.168.247.161:6379
   replicates 443085f98265619d4e8c85762f737099a2f9ac1c
S: 86ad85451aaf80dbb7b5a7e0accf5d040dcd95fc 192.168.247.129:6379
   replicates 443085f98265619d4e8c85762f737099a2f9ac1c
S: 86ad85451aaf80dbb7b5a7e0accf5d040dcd95fc 192.168.247.130:6379
   replicates 443085f98265619d4e8c85762f737099a2f9ac1c
Can I set the above configuration? (type 'yes' to accept): 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.247.160:6379)
M: 443085f98265619d4e8c85762f737099a2f9ac1c 192.168.247.160:6379
   slots:[0-16383] (16384 slots) master
   1 additional replica(s)
S: 86ad85451aaf80dbb7b5a7e0accf5d040dcd95fc 192.168.247.161:6379
   slots: (0 slots) slave
   replicates 443085f98265619d4e8c85762f737099a2f9ac1c
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
//一主一从的绑定关系是随机的

验证群集

主从数据验证

[root@master rvm-master]# redis-cli -h 192.168.247.160 -p 6379
创建一个键值
192.168.247.160:6379> keys *
(empty list or set)
192.168.247.160:6379> set user lisi
OK
192.168.247.160:6379> keys *
1) "user"
192.168.247.160:6379> get user
"lisi"
192.168.247.160:6379> exit
[root@master rvm-master]# redis-cli -h 192.168.247.161 -p 6379
到161节点查看
192.168.247.161:6379> keys *
1) "user"
192.168.247.161:6379> get user
(error) MOVED 5474 192.168.247.128:6379
反馈移动到128节点查看
192.168.247.161:6379> exit
[root@master rvm-master]# redis-cli -h 192.168.247.128 -p 6379
192.168.247.128:6379> get user
"lisi"
192.168.247.128:6379> exit

测试hash方式存储的值验证与设置键的自动删除时间

[root@master rvm-master]# redis-cli -h 192.168.247.160 -p 6379192.168.247.160:6379> hset users name zhangsan
(integer) 1
192.168.247.160:6379> keys *
1) "users"
2) "user"
192.168.247.160:6379> hget users 
(error) ERR wrong number of arguments for 'hget' command
192.168.247.160:6379> hget users name
"zhangsan"
192.168.247.160:6379> expire user 10
//设置user的缓存时间为10s
(integer) 1
192.168.247.160:6379> 	//过了10秒后
192.168.247.160:6379> get user
查看user信息,无法显示
(nil)
192.168.247.160:6379> keys *
查看键值,发现user已经消失
1) "users"
192.168.247.160:6379> exit
[root@master rvm-master]# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值