当前位置: 首页 > article >正文

redis瘦身版

高可用:

  主从

    哨兵:sentinel: 集群监控 消息通知 故障转移 配置中心

redis cluster :livu livechat中使用了

 人家有槽slot 16384个呢 请求发送任意节点 该节点会将请求发送到正确节点上-相亲相爱

    1.哈希的方式,将数据分片 每个节点均分存储一定哈希槽区间的数据

    2.每份数据分片会存储在多个互为主从的多节点上

    3.先写主节点再同步从节点

    4.读取数据,当客户端操作的key没有分配在该节点,返回转向指令,指向正确节点

    5.扩容时需要把旧节点的数据迁移一部分到新节点

    6.每个redis放开两个端口,6379 16379,16379节点间通信,cluster bus,故障检测/转移

    7.cluster bus用gossip二进制协议,节点间高效数据交换,占用更少的网络带宽和处理时间

无中心架构,支持动态扩容,对业务透明

自备sentinel监控和自动failover故障转移能力

高性能,直连redis服务 免去proxy损耗

有点缺:人无完人 redis无完美  怎么说:反正有缺点但是值得

    运维复杂 数据迁移需要人工 只能使用0号数据库 不支持批量操作 分布式逻辑和存储模块耦合

redis sharding:你可以不看  让我自己卷

多redis实例集群,采用哈希算法将redis的key进行散列,映射到特定的redis节点

   简单,服务端redis实例彼此独立,相互无关联,每个redis实例像单服务器一样 线性扩展

   不支持动态删增节点,服务器redis实例群拓扑结构变化,每个客户更新调整 连接不共享 

三大热门问题:还行 咱家项目设计稳稳当当 上学的时候遇到过一次

缓存穿透:缓存 数据库都没有的数据,库短时间内承受大量请求

    接口层校验,缓存取不到库中也没有,可key-null 短的过期时间,布隆过滤器bitmap中

缓存击穿:缓存中没有库中有,并发查同一条数据

    热点永不过期,互斥锁

缓存雪崩:一瞬间大面积失效

    设置随机过期时间/新增缓存标记是否失效/缓存预热/互斥锁

一致性:

写不太频繁:

1,操作缓存 设置过期标识 客户端读缓存过期则休眠再查redis

2,先删缓存,看他不顺眼直接删了!再写数据库,休眠 再删缓存

主从同步

1 从节点slaveof masterip port 保存主节点信息

2 从节点定时任务发现主节点,建立和主节点socket连接

3 从发送信号 主返回 互相私通 呸 私信,连接建立 主all数据发送给从

runid:每个redis节点启动生成唯一标识uuid

offset:主从各自维护自己的复制偏移量,主也写offset=offset+命令字节长度,从收到主发送命令后,增加自己的offset,把自己的offset发送给主节点,主节点同时保存自己的offset和从的,对比判断主从一致性数据

 

repl_backlog_size:主节点上固定长度的先进先出队列1M


http://www.kler.cn/a/271344.html

相关文章:

  • 苹果Vision Pro即将在中日韩等九国开卖 | 百能云芯
  • 提升物流效率,快递平台实战总结与分享
  • 高可用系统有哪些设计原则
  • 图神经网络实战——基于Node2Vec的电影推荐系统
  • Microsoft Word 符号 / 特殊符号
  • 谷歌seo怎么寻找行业外链?
  • 【数据结构和算法初阶(C语言)】二叉树铺垫--栈帧的创建与销毁--细节全解
  • 【系统架构设计师】系统工程与信息系统基础 01
  • android studio设置flutter和dart的sdk配置
  • simulink汽车动力特性模型
  • 面向对象(C# )
  • 密码校验规则(不能包含3个及以上字典、键盘连续字符)
  • 决策树 | 分类树回归树:算法逻辑
  • Android 设计模式单例
  • Android Studio入门——页面跳转
  • 还是了解下吧,大语言模型调研汇总
  • 迷茫了!去大厂还是创业?
  • 小结:Node.js Express VS Koa
  • 我公司网站建设奉行“每个细节都一丝不苟”得标杆、全方位践诺
  • 【Java基础】IO流(三):字符流的FileReader(文件字符输入流)和 FileWriter(文件字节输出流)