Redis熟悉到精通:开篇

文章探讨了Redis作为缓存技术如何实现高可靠和高性能,包括持久化机制、主从复制、哨兵系统和切片集群。同时,提到了不同一致性数据类型的缓存策略,如不变性数据可优先缓存,弱一致性数据采用基于时间的失效机制,而强一致性数据需谨慎处理。文中还推荐了Redis的相关学习资源。
摘要由CSDN通过智能技术生成

要点

  1. 掌握数据结构和缓存的基本使用方法;

  2. 掌握支撑Redis实现高可靠、高性能的技术;

    高可靠

    • Redis之所以可以实现高可靠、高性能,和它的持久化机制、主从复制机制、哨兵、故障自动恢复、切片集 群等密不可分。
    • 单机版Redis,当实例宕机后,如果我们需要从磁盘恢复数据,还会面临一个问题:恢复也是需要时间的,而且实例越大,恢复的时间越⻓,对业务的影响就越大。(解决方案:采用多个副本)
    • 当主节点宕机后,我们把从节点提升上来,这个过程是手动的过程。(解决方案:哨兵,实现自动切换)
    • 切片集群(数据路由和数据迁移)

    高性能

    • Redis的数据都存储在内存中,再加上使用IO多路复用机制。
  3. 精通Redis底层实现原理。

    • list、Hash、Sorted Set为了 减少内存的使用,在数据量比较少时,都采用压缩列表(ziplist)存储,这样可以节省内存。而String和Set 在存储数据时,也尽量选择使用int编码存储,这也是为了节省内存占用。这些都是Redis针对数据结构做的 优化

在这里插入图片描述

使用缓存技术的目的

并不是所有的缓存都只是为了提升速度,因为在分布式系统中,缓存机制实际上是系统级性能在设计的⼀个重要权衡⼿段。 ⽐如当某个数据库的负载⽐较⾼,接近系统瓶颈时,我们就可以使⽤缓存技术, 把负荷分担到其他数据库中,那么这⾥使⽤缓存的⽬的,主要就是负载均衡,⽽不是提升访问速度。

需要缓存机制的数据种类

  • 不变性数据

    • ⾸先是不变性数据,它代表数据永远不发⽣变化,或者是在较⻓⼀个时间段内不会发⽣变化,因此也可认为这部分数据是不变的。 这类数据就是可以优先考虑使⽤缓存技术的⼀种数据类型
  • 弱⼀致性数据

    • 弱一致性数据,它代表数据会经常发生变化,但是业务对数据的一致性要求不高,也就是说,不同 用戶在同一时间点上看到不完全一致的数据,都是可以接受的。
    • 由于这类数据对一致性的要求比较低,所以在设计缓存机制时,你只需要实现最终一致性就可以了。这类数 据在实际业务中也比较多,比如业务的历史分析数据、一些搜索查找返回数据等,即使最近的一些数据没有 记录进去,关系也不大。
    • 针对弱一致性的数据,我们通常使用的缓存失效机制是基于时间的失效方式,同时因为弱一致性的特性,你 可以比较灵活地选择数据存储技术,比如内存Cache,或者是分布式数据库Cache。你甚至可以基于负载均 衡的调度,来设计多层级缓存机制。
  • 强⼀致性数据

    • 强一致性数据,它是指代码数据会经常发生变化,而且业务对数据库的一致性要求非 常高,也就是说当数据发生变更后,其他用戶在系统中的任何地方,都应该看到的是更新后的数据。

    • 那么,针对这种类型的数据,一般是不推荐你去使用缓存机制,因为这类数据在使用缓存时会比较复杂, 而且很容易会引入新的问题.

    • 如果需要缓存:这种数据的缓存一定要采用修改同步的实现方式。也就是说,所有的数据修改都必须确保可以同步修改 缓存与数据库中的数据。

Redis学习资料

工具书:《Redis使用手册》

原理书:《Redis设计与实现》

上面两本书 是统一作者

实战书:《Redis开发与运维》

Redis的关键机制和操作系统、分布式系统的对应知识点
在这里插入图片描述
请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值