Lnmp架构-Redis

这篇具有很好参考价值的文章主要介绍了Lnmp架构-Redis。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网站:www.redis.cn

redis 部署

Lnmp架构-Redis,架构,redis,数据库

make的时候需要gcc和make  如果在纯净的环境下需要执行此命令

[root@server3 redis-6.2.4]# yum install make gcc -y
 

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库注释一下这几行

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

vim /etc/redis/6739.conf

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

2.Redis主从复制

设置 11 是master 12 13 是slave

在12 上

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

其他节点以此内推

此时在 11 master 上

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库slave 角色只能读 没有修改的权限

当在master上

Lnmp架构-Redis,架构,redis,数据库

在slave会实现同步

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

redis高可用 

redis 主从切换

redis 主从原理:基于rdb 快照实现 它和MySQL的二进制日志的差别(数据类型不同)

在执行主从的时候:slave和master要先做一个认证 发起一个同步请求,master会执行一个bgsave(异步模式)/save(阻塞模式),异步模式的时候,bgsave会做一个rdb快照,然后把rdb快照发给slave,slave会做一个动作,清掉slave端所有的数据(flushall),然后slave会再次加载快照,

快照做完之后,还会有变更数据,所以放在缓存里面,然后接下来会用replicationfeedslave()增量函数 一条一条发给slave,然后再给slave端做同步 redis主从基于rdb快照格式出现

Lnmp架构-Redis,架构,redis,数据库

redis 主从基于快照rdb快照格式实现

Lnmp架构-Redis,架构,redis,数据库

一主多从的架构中 做高可用切换 redis 里自带

Lnmp架构-Redis,架构,redis,数据库

2 表示的意思:怎么判断master出故障呢,必须要两个节点说master出故障了 才能发起故障切换

当第一个节点发现master出现故障 会进入一种主观下线状态

当第二个节点发现master出现故障 会再次进入一种主观下线状态

两次的主观下线会触发一次客观下线,这个时候master会开始真正进行主从切换

三个节点就设置为2 两个节点就设置为1

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

拷贝文件的动作 一定要在启动之前

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

其它主机直接启动服务,无需更改配置文件

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

这就是哨兵模式

此时 在开一个终端11 11 此时是master

Lnmp架构-Redis,架构,redis,数据库

关闭master

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

redis集群 会自动切换master

当原来的master再次启动后,会以slave身份加入集群

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

在切换的时候可能会出现的问题

客户端到master没什么问题,master 到slave端的网络如果出现故障

这个时候就会把master踢出去 选举出新的master  slave接上去

当网络又正常 原来的master 会同步当前集群的配置 把自己变成slave 接入到新的master 这样的话 原来的master上所有数据都会丢失

但是 客户端到master是好的 这个时候 客户端会持续往master里写数据 客户一直在写 但是master到slave出现故障 master就会变为slave 数据就会被清掉

Lnmp架构-Redis,架构,redis,数据库

怎么解决呢

必需保证后端有两个slave可以写

添加 min-slave-to-write=2 到配置文件

保证在主从切换的时候 客户端不要给master里面写  如果master发现都连不上两个slave 就不要往里面写入数据了 避免数据丢失

Redis集群

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

无中心化设计 每个节点都可以接入集群 不管是主从 都可以进行读写 在接入集群之后都可以做调度 做重定向 但是 它的整合度太高了 二次开发成本太高

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库会在当前的目录里 生成对应的配置文件和数据

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

这样就创建好了一个集群

查看命令帮助

redis-cli --help

Lnmp架构-Redis,架构,redis,数据库

获取集群状态

Lnmp架构-Redis,架构,redis,数据库

主从关系的详细信息

Lnmp架构-Redis,架构,redis,数据库

redis-cli --cluster 实际就是把总共16384个哈希槽 ,均摊到这三个master 进行存储 每个节点都会分得一定比例的哈希槽,哈希槽就是存数据用的

连接集群

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

关闭redis实例,集群自动切换

30002的 master 关闭  30005之前是slave 就会接管变成master

Lnmp架构-Redis,架构,redis,数据库

此时 数据就会在30005上 数据不会丢失

Lnmp架构-Redis,架构,redis,数据库

以上就是 redis 内置的高可用切换

如果再把脚本启动起来 这时候 刚才关闭的30002 就会被再次拉起来

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库

拉起来之后 30002 就是slave

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

此时 互换了角色

设么么时候会导致这个进群节点不可用

1 这16384这些哈希槽如果不完整集群不可用 

2.同一这个集群的半数master同时挂掉

再启动两个redis实例

Lnmp架构-Redis,架构,redis,数据库

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库ps ax

Lnmp架构-Redis,架构,redis,数据库

在线添加集群节点

Lnmp架构-Redis,架构,redis,数据库

新添加的节点没有hash槽,角色时是master

Lnmp架构-Redis,架构,redis,数据库

添加slave节点

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

重新迁移hash槽

Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库Lnmp架构-Redis,架构,redis,数据库

 删除哪个节点的时候

就得把这个节点上的哈希槽迁徙到别的机器上

要不然就会造成哈希槽不完整 集群就会shutdown文章来源地址https://www.toymoban.com/news/detail-698148.html

到了这里,关于Lnmp架构-Redis的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 126、高频Redis面试题:如何保证Redis和数据库数据一致性

    问题:如果数据库中的某条数据放入缓存后,又马上被更新了,那我们应该如何更新缓存 缺点: 如果先更新缓存成功,在更新数据库的时候失败,这时候会导致数据不一致;缓存的作用是不是临时将我们数据保存在内存,便于提高查询速度;但是如果某条数据在数据库中都

    2024年02月13日
    浏览(36)
  • Redis 数据库高可用

    (1)在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 (2)在Redis中,保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。 实现高可用的技

    2024年02月15日
    浏览(32)
  • Redis缓存数据库(四)

    目录 一、概述 1、Redis Sentinel 1.1、docker配置Redis Sentinel环境 2、Redis存储方案 2.1、哈希链 2.2、哈希环 3、Redis分区(Partitioning)  4、Redis面试题 Redis Sentinel为Redis提供了 高可用解决方案 。实际上这意味着使用Sentinel可以部署一套Redis, 在没有人为干预的情况下去应付各种各样的失

    2024年02月05日
    浏览(47)
  • Redis 数据库 NoSQL

    目录 一、NoSQL 二、为什么会出现NoSQL技术 三、NoSQL的类别 键值(Key-Value)存储数据库 列存储数据库 文档型数据库 图形(Graph)数据库 四、NoSQL适应场景 五、在分布式数据库中CAP原理 1、CAP 2、BASE NoSQL(Not Only SQL)即不仅仅是SQL,泛指非关系型的数据库,它可以作为关系型数

    2024年02月12日
    浏览(37)
  • 【后端面经-数据库】Redis详解——Redis基本概念和特点

    目录 1. Redis基本概念 2. Redis特点 2.1 优点 2.2 缺点 3. Redis的应用场景 面试模拟 参考资料 声明:Redis的相关知识是面试的一大热门知识点,同时也是一个庞大的体系,所涉及的知识点非常多,如果用一篇文章罗列,往往会陷入知识海洋中无法感知其全貌,因此,这段时间我会试

    2024年02月13日
    浏览(45)
  • redis数据库和MongoDB数据库基本操作

    (1) 设置键值 (2) 读取键值 (3) 数值类型自增1 (4) 数值类型自减1 (5) 查看值的长度 (1)对列表city插入元素:Shanghai Suzhou Hangzhou (2)将列表city里的头部的元素移除 (3) 对一个已存在的列表插入新元素 (4)查看list的值长度 (1) 设置一个hash表,order表里包括的

    2024年02月16日
    浏览(57)
  • redis的缓存更新策略以及如何保证redis与数据库的数据一致性

    redis的缓存更新策略有这么几种: 1、由应用直接和redis以及数据库相连接:         查询数据时,应用去redis中查询,查不到的话再由应用去数据库中查询,并将查询结果放在redis;         更新数据时,由应用去触发redis数据的删除以及数据库的update。 2、应用只跟redi

    2024年02月13日
    浏览(48)
  • Redis与数据库保持一致

    参考链接 先更新数据库,再更新redis 存在漏洞,如果更新Redis失败,仍然会导致不一致 先删Redis,再更新数据库并同步数据到Redis 存在漏洞,多线程情况下,线程1删除redis后,还是有可能被其他线程读取旧的数据库数据加载到redis当中 延迟双删, 在2的基础上,更新成功后延迟

    2024年02月11日
    浏览(38)
  • 数据库应用:Redis安装部署

    目录 一、理论 1.缓存 2.关系型数据库与非关系型数据库 3.Redis 4.Redis安装部署 5.Redis命令工具 6.Redis数据库常用命令 7.Redis多数据库操作 二、实验 1.Redis安装部署  2.Redis命令工具 3.Redis数据库命令 4.Redis多数据库操作 三、问题 1.RESP连接CentOS 7 Redis数据库 四、总结 (1)概念 缓存

    2024年02月15日
    浏览(38)
  • Redis多机数据库实现

    为《Redis设计与实现》笔记 客户端可以使用 SLAVEOF 命令将指定服务器设置为该服务器的主服务器 127.0.0.1:6379 将被设置为 127.0.0.1:123456 的主服务器 旧版复制功能的实现 Redis的复制功能分为同步(sync)和命令传播(command propagate)两个阶段 同步:将从服务器的数据库状态更新至

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包