文章目录

  • 一.redis编译安装
  • 二 .redis主从复制
  • 三. redis哨兵模式
    • 1.配置sentinel
    • 2 开启哨兵模式
    • 3 观察效果
  • 四. redis的集群cluster
    • 1. 集群构建
      • 1)、手动构建集群
      • 2) .脚本构建集群
    • 2.自动切换
    • 3、添加节点和分片
  • 五. Redis+Mysql读写分离

一.redis编译安装

下载安装包,解压后进行编译
编辑自带安装程序的脚本文件,注释以下内容

[root@server1 redis-6.2.4]# cd utils/
[root@server1 utils]# vim install_server.sh
[root@server1 utils]# ./install_server.sh  xs    ##执行安装脚本



安装成功后查看端口6379已经成功开启

[root@server1 utils]# netstat -antlp


查看etc目录下的redis配置文件也已经生成,修改配置文件,编辑配置文件

启动redis

[root@server1 redis]# /etc/init.d/redis_6379 start

同样server2和server3都安装redios

二 .redis主从复制

设定server2为server1的slave.设定server1为master
编辑server上redis的配置文件,添加master

[root@server2 utils]# vim /etc/redis/6379.conf
slaveof 172.25.1.1 6379   


重启1和2的redis,在1中查看redis的info信息,即可查看到他有一个slave

:[root@server1 redis]# redis-cli
127.0.0.1:6379> info


在server上同样添加master指定后重启,在server1上即可查看到一主两从

此时在1中新建库“二千”,会在2和3中都能看到

三. redis哨兵模式

Sentinel(哨兵)是用于监控redis集群中Master状态的工具,是Redis
的高可用性解决方案,sentinel哨兵模式已经被集成在redis2.4之后的版本中。sentinel是redis高可用的解决方案,sentinel系统可以监视一个或者多个redis
master服务,以及这些master服务的所有从服务;当某个master服务下线时,自动将该master下的某个从服务升级为master服务替代已下线的master服务继续处理请求。

sentinel可以让redis实现主从复制,当一个集群中的master失效之后,sentinel可以选举出一个新的master用于自动接替master的工作,集群中的其他redis服务器自动指向新的master同步数据。一般建议sentinel采取奇数台,防止某一台sentinel无法连接到master导致误切换。

1.配置sentinel

在server1主机中,配置sentinel,并复制到server2和server3中
在解压目录里复制模板文件到安装目录下,

[root@server1 ~]# cd redis-6.2.4/
[root@server1 redis-6.2.4]# cp sentinel.conf /etc/redis/
[root@server1 redis-6.2.4]# vim /etc/redis/sentinel.conf
sentinel monitor mymaster 172.25.1.1    6379    2    ##master为server1,2表示需要两票通过,这台主机就被认定宕掉
sentinel down-after-milliseconds mymaster 10000 ##修改连接超时为10s

将编辑好的sentinel配置文件复制到2和3

2 开启哨兵模式

[root@server3 utils]# redis-sentinel /etc/redis/sentinel.conf

3 观察效果

此时我们打开一个新的shell,连接server1的redis,并手动关停,此时master被关闭,两台slave就会投票并选举出新的master

可以非常清楚的看到选举新master的过程,此时master已经自动变成了3
查看2的info信息,也能看到master已经变成了3

[root@server2 utils]# redis-cli
127.0.0.1:6379> info


当1重启后就会成为一个新的slave加入集群

四. redis的集群cluster

Redis集群的几个重要特征:
1.Redis 集群的分片特征在于将键空间分拆了16384个槽位,每一个节点负责其中一些槽位。

2.Redis提供一定程度的可用性,可以在某个节点宕机或者不可达的情况下继续处理命令.(只要集群中大多数Master可达、且失效的Master至少有一个Slave可达,即集群非Fail状态,集群都是可用)

3.Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)
Redis3.0版本以上
要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点

1. 集群构建

1)、手动构建集群

在server3主机(master),重启redis,开启AOF模式,建立medis目录,并建立集群7001~7006目录,切入7001,修改配置文件,启动服务。将配置文件复制到其他几个实例目录中,根据情况做修改。

[root@server3 utils]# vim /etc/redis/6379.conf

开启AOF模式

[root@server3 utils]# cd /usr/local/
[root@server3 local]# mkdir redis
[root@server3 local]# cd  redis
[root@server3 local]# mkdir 700{1..6}
[root@server3 local]# cd 7001/
[root@server3 7001]# vim redis.conf

编辑配置文件

port 7001
cluster-enabled yes                 ##开启集群
cluster-config-file nodes.conf      ##集群配置文件
cluster-node-timeout 5000           ##节点超时
appendonly yes                      ##开启AOF模式
daemonize yes                       `##用守护线程的方式开启
[root@server3 7001]# redis-server redis.conf ##启动服务

此时我们成查看pid ,已经能看到7001

将配置文件复制到其他五个节点中,并修改端口号
然后启动服务
cd使用redis-cli来进行集群的交互,客户端连接任意一个节点,使用-c表示以集群的方式登录,-p指定端口。
[root@server3 ~]# redis-cli -c -p 7001
创建集群主从节点,–cluster-replicas 参数为数字,1表示每个主节点需要1个从节点。然后检查集群,查看集群信息。
[root@server3 redis]# redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1

输入yes后创建成功

[root@server3 redis]# redis-cli --cluster check 127.0.0.1:7001 ## 检查集群

[root@server3 redis]# redis-cli --cluster info 127.0.0.1:7001/ ## 集群信息查看

2) .脚本构建集群

[root@server3 redis]# cd
[root@server3 ~]# cd redis-6.2.4/
[root@server3 redis-6.2.4]# cd utils/create-cluster/
[root@server3 create-cluster]# ./create-cluster start

[root@server3 create-cluster]# ./create-cluster stop
##停止所有实例,使用手动构建的集群来做接下来的实验

2.自动切换

由cheek信息可知,主从对应关系为7006为7001的slave
当我们手动关闭7001

[root@server3 redis]# redis-cli -c -p 7001
127.0.0.1:7001> SHUTDOWN
not connected>
[root@server3 redis]# ps ax

再次cheek集群节点时,发现7006以经成为了master

3、添加节点和分片

1中相同的方式再创建两个节点,加入之前的集群

将7007节点加入集群中,执行check就能看到

[root@server3 7008]# redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
[root@server3 7008]#  redis-cli --cluster check 127.0.0.1:7002


7007节点加入集群中,但是并没有分配slot,所以这个节点并没有真正的开始分担集群工作,所以要进行分片。重新分片基本上意味着将哈希槽从一组节点移动到另一组节点

[root@server3 7008]# redis-cli --cluster reshard 127.0.0.1:7001

How many slots do you want to move (from 1 to 16384)? 1000               ##移动的插槽数量
What is the receiving node ID?  ##接收节点的ID
Source node #1: all
##从哪些节点获取这些密钥,键入all以从所有其他主节点获取哈希槽,每个节点都拿出一些
Do you want to proceed with the proposed reshard plan (yes/no)? yes     ##确定是否要继续重新分片,输入yes

分片完成后check可以看到,7007有1000个哈希槽,且平均来源于其他三个主节点

现在将7008 节点加入到7001 节点的集群中,并且指定其为7007的slave,id为要添加的主节点的ID

redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7001 --cluster-slave --cluster-master-id

再次check 可以看到节点添加成功

五. Redis+Mysql读写分离

Redis安装及集群部署相关推荐

  1. elasticsearch2.3安装以及集群部署

    摘要: elasticsearch安装以及集群部署 一.下载 1.1安装elasticsearch-2.3.3要求是安装官方新版的Java,必须是JDK 1.7以上,1.7以下执行的时候会报以下错误. ...

  2. redis学习之集群部署

    redis学习之集群部署 1.Redis主从架构 1.1.主从复制原理 1.2.主从复制优缺点 1.3.redis主从架构搭建,配置从节点步骤 1.4.校验结果 1.5.数据部分复制 2.Redis哨 ...

  3. Redis高可用集群部署和集群扩展

    文章目录 一.前言 二.集群配置 2.1 说明 2.2 配置 2.3 启动redis 2.4 集群操作 2.5 验证集群 2.5.1 springboot配置文件 2.5.2 代码测试 2.5.3 集 ...

  4. redis 主从 哨兵 集群部署

    介绍 Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括stri ...

  5. K8S集群搭建:安装kubeadm集群部署工具

    将镜像包上传至服务器每个节点 mkdir /usr/local/k8s-install cd /usr/local/k8s-install XFTP上传安装文件 每个CentOS上安装Docker 使 ...

  6. Linux中级实战专题篇:rabbitmq(消息中间件p2p模式和pub模式,消息队列rabbitmq详解,单机安装,集群部署以及配置实战)

    一.消息中间件相关概念 1.简介 消息中间件也可以称消息队列,是指用高效可靠的消息传递机制进行与平台相关 的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息 队列模型,可以在分布 ...

  7. 分布式业务Redis安装与集群配置

    Redis在百度百科里的解释:Redis是一个开源的使用ANSI  C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API,包括C#.Java.PHP等等 ...

  8. elasticsearch 8.3版本安装和集群部署

    我跟着一些网页教程提示部署我的集群,发现我集群里面的服务器互相看不到,于是咨询了我的老师,加上自己的实验终于成功了.因为之前网上找的参数和我的版本没对上,导致起不来,我这个集群服务器版本是8.3.1 ...

  9. redis安装、集群搭建等

    1 Redis介绍 1.1 什么是NoSql 为了解决高并发.高可扩展.高可用.大数据存储问题而产生的数据库解决方案,就是NoSql数据库. NoSQL,泛指非关系型的数据库,NoSQL即Not-On ...

最新文章

  1. Tensorflow CIFAR-10训练例子报错解决
  2. WebStorm 打开多个项目的方法
  3. Guava API学习之Multimap
  4. 附笔记pdf下载,MIT中文线性代数课程精细笔记[第四课]
  5. 插图 引用 同一行两个插图_提出食物主题中的插图
  6. redis 计数器 java_Redis介绍
  7. Python爬虫入门学习线路图2019最新版
  8. 查看Eclipse版本号,及各个版本区别
  9. 生物信息学数据库及在线工具汇总 (更新)
  10. 成都市计算机会考,四川省高中信息技术会考资料及试题
  11. (数据分析)网课评论分析
  12. Java-好玩的猜数小游戏
  13. 安卓手机管理_彻底解决安卓手机通知管理难题,顺便还实现了聊天消息防撤回!?
  14. 阿里云视频服务(视频边缘智能服务)接入流程
  15. 华为AC忘记console密码
  16. 深入了解计算机系统(CS:APP)思考题
  17. 黑马程序员-MyBatis 框架-最全入门笔记、阿伟看了都得说真大、真细、真全!!!
  18. 率土之滨服务器进备战区维护多久,率土之滨备战区维护,备战区为什么不拆战法...
  19. 使用Visual Studio Code进行ABAP开发
  20. gmail邮箱中显示的名字如何修改?

热门文章

  1. 川大c语言程序设计第二次作业答案,川大《C语言程序设计0008》15秋在线作业1满分答案...
  2. AD通孔焊盘单独设置铺铜规则
  3. secureCRT上传CentOS镜像
  4. tx2串口与can通信控制c620电机(使用usb转can模块)
  5. 京东商品浏览网页制作:HTML+CSS
  6. 京东购物车网页(静态)搭建
  7. python数据库实体_python---使用get方法访问‘数据库’实体
  8. 经济基础知识(初级)【16】
  9. 【小白向】简单随意DIY你的U盘图标
  10. OpenCV计算机视觉(三) —— 图像的几何变换