详细了解Redis群集及部署

一、为什么要搭建Redis集群?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、搭建Redis集群

实验环境

  • 一台master服务器上 三张网卡 分别是 20.0.0.30 20.0.0.133 20.0.0.134
  • node 节点上也得具备3块网卡 20.0.0.31 20.0.0.135 20.0.0.132
  • 模拟6节点

redis集群 (所有节点操作)

vim  /etc/redis/6379.conf

注释掉 bind项   //redis 中 bind  选项默认监听所有网卡
89  protected-mode no       //关闭保护模式
93  port 6379               
137 daemonize yes              //以独立进程启动
833  cluster-enabled yes      //开启群集功能
841  cluster-config-file nodes-6379.conf    //群集名称文件设置
700 appendonly yes   //开启aof持久化


[root@localhost 6379]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...

正常启动后,/var/lib/redis/6379/目录下会多出两个文件
一个是持久化 appendonly.aof 文件,另一个是节点首次启动生成的 nodes-6379.conf 配置文件
[root@localhost 6379]# cd /var/lib/redis/6379/
[root@localhost 6379]# ls
appendonly.aof  dump.rdb  nodes-6379.conf

仅在master中操作

//导入key 文件
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

//安装rvm   ##rvm是ruby的版本管理工具  还可对ruby进行 安装 卸载 等
tar zxvf rvm-master.tar.gz 
cd rvm-master/
./install

//执行环境变量
source   /etc/profile.d/rvm.sh

//列出 Ruby 可安装的版本
rvm list known


//安装 Ruby2.4.1版本
rvm install 2.4.1

//使用Ruby2.4.1版本
rvm  use  2.4.1

//查看当前  Ruby2.4.1 版本
ruby   -v

//再次安装Redis 
gem  install redis

//创建集群
六个实例分为三组,每组一主一从,--replicas  1  表示 每组一个从,下面交互的时候  需要输入 yes 才可以创建。使用源码解压目录中的 redis-trib.rb  工具创建群集。
master 服务器上 3块网卡      20.0.0.30   20.0.0.133   20.0.0.134
node 节点上也得具备3块网卡    20.0.0.31  20.0.0.135   20.0.0.132
模拟6节点

master

添加完了后
UUID注释掉
service  network   restart
ifconfig
cd /etc/sysconfig/network-scripts/
 ll
 cp ifcfg-ens33   ifcfg-ens37
 vi ifcfg-ens37
 cp  ifcfg-ens33  ifcfg-ens38
 vi ifcfg-ens38
 systemctl restart network
 ip addr

node

网卡配置
以上操作与master一样


[root@localhost network-scripts]# /etc/init.d/redis_6379 restart
Stopping ...
Redis stopped
Starting Redis server...

前三个是主,后三个是从
redis-cli --cluster create 20.0.0.30:6379  20.0.0.133:6379  20.0.0.134:6379  20.0.0.31:6379   20.0.0.135:6379    20.0.0.132:6379    --cluster-replicas 1

测试

[root@localhost ~]# redis-cli -h 20.0.0.30  -p 6379   ##在主中写入一条数据
20.0.0.30:6379> set  namess zzz
OK

20.0.0.30:6379> keys *
1) "namess"

[root@localhost ~]# redis-cli -h 20.0.0.31  -p 6379    ##切换从主机登录
20.0.0.31:6379> keys *     ##从主机同步了主的数据
1) "namess"

20.0.0.31:6379> get namess      ##却不能将key 中的数据输出出来
(error) MOVED 12039 20.0.0.133:6379   ##提示去主133才能将其输出

[root@localhost ~]# redis-cli -h 20.0.0.133  -p 6379      ##进入主133主机
20.0.0.133:6379> get namess    ##将其输出
"zzz"


结论  主133 成为 主30的复制集
主30 第一次写入数据后,它会随机挑选一个节点作为自己的副本集,之后群集内的所有节点都会将数据指定这个副本集

如果想要所有节点都能get到key中的数据就这样登录
-c 是群集的意思

redis-cli  -c -h 20.0.0.30  -p 6379

使用hash存储
好处是可以节省空间,将键存进hash 对象中,键名称在数据库中也会单独占用空间

[root@localhost ~]# redis-cli -h 20.0.0.30  -p 6379
20.0.0.30:6379> hset  person score 80
(integer) 1
20.0.0.30:6379> hset  person name lisi
(integer) 1
20.0.0.30:6379> hset  person age 20
(integer) 1

20.0.0.30:6379> keys *  ##只有一个key键,因为是hash
"person"  

20.0.0.30:6379> hget  person name   ##输出时不能直接get  name  ,要先选中对象,再选中里面的 key 
"lisi"

----生命周期设置----
20.0.0.30:6379> EXPIRE  name 20  ##20秒生命周期

20.0.0.30:6379>keys *    查看

20秒后消失了
内存中也会消除

20.0.0.133:6379>keys*


复制集中也会消失
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值