• 深入学习Redis,结合实际工作经验总结常用核心知识点


    Redis高可用概述

    在介绍Redis高可用之前,先说明一下在Redis的语境中高可用的含义。
    我们知道,在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服务(如主从分离、快速容灾技术),还需要考虑数据容量的扩展、数据安全不会丢失等。
    在Redis中,实现高可用的技术主要包括持久化、复制、哨兵和集群,下面分别说明它们的作用,以及解决了什么样的问题。

    持久化:持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。
    复制:复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障恢复无法自动化;写操作无法负载均衡;存储能力受到单机的限制。
    哨兵:在复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡;存储能力受到单机的限制。
    集群:通过集群,Redis解决了写操作无法负载均衡,以及存储能力受到单机限制的问题,实现了较为完善的高可用方案。

    Redis持久化概述

    持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免进程退出导致数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存

    今天分享京东架构师亲自码出的“redis深度笔记”,笔记内容没有讲一句废话,全篇看下来都是精华!

    本小册主要讲解实战中摸索总结的Redis最常用最核心知识点,但限于篇幅和精力,并没有涵盖Redis 全部的内容知识点,比如Redis 内置的lua 脚本引擎就完全没有提到。之所以不讲,是因为在平时的工作中确实从来没有使用过,它就好比关系数据库的存储过程,虽然功能很强大,但是确实很少使用,而且也不易维护,所以就不推荐读者使用了。下面我们就从这基础、应用、原理、集群、拓展、源码等六个篇章来贯通redis深度笔记吧

    基础篇

    千里之行,始于足下。本节我们的学习目标是:快速理解并掌握Redis的基础知识。

    应用篇

    原理篇

    集群篇

    拓展篇

    源码篇

    内容精选

    分布式锁

    布隆过滤器

    线程IO模型

    主从同步

    redis安全通信

    跳跃列表内部结构

    基数树内部

    最后

    不管学习任何一门技术,都应该有个系统的学习!系统性学习需要耗费巨大的时间和精力,有的人可能会觉得不值得,就放弃了系统性学习,转而信仰复制粘贴改一下**七字真言,一头扎进 CURD 的苦海。但系统性的学习一个知识点,可以让我们在遇到问题时考虑得更加全面,这也是一个成熟的工程师应该具备的特征;碎片化的学习则很容易让我们得出一些片面的、甚至错误的结论。

  • 相关阅读:
    GO 抽象工厂模式设计
    Flink之Window窗口机制
    Redis的AOF持久化
    【2023年11月第四版教材】第23章《组织通用管理》(合集篇)
    Kotlin(十) 空指针检查、字符串内嵌表达式以及函数默认值
    问:TCP/IP协议栈在内核态的好还是用户态的好
    【SpringMVC】参数传递与用户请求和响应
    Microsoft SQL Server 编写汉字转拼音函数
    人力资源APP功能
    Python中处理HTTP异常和错误的策略
  • 原文地址:https://blog.csdn.net/LBWNB_Java/article/details/127700799