Redis-学习笔记整理+汇总

万字长文的Redis五种数据结构详解(理论+实战),建议收藏。:https://mp.weixin.qq.com/s/ipP35Zho9STAgu_lFT79rQ

Redis内部数据结构详解——ziplist

蜻蜓点水说说Redis的String的奥秘:https://mp.weixin.qq.com/s/qeYQdndqbkkuuzFNCrYxAA

天啊,为什么我的Redis如此的慢?:https://mp.weixin.qq.com/s/VbVEZAN6CIdDc2LgYODS7A

Redis-单个实例的QPS能够达到10W左右
1、使用复杂度高的命令
访问延迟突然增大,如何进行排查?
查看redis慢日志
设置Redis的慢日志阈值:超过阈值的命令被记录,单位微秒,设置保留最近慢日志条数
SLOWLOG get5 :查询最近5条慢日志

2、存储大key
Redis在写入数据时,需要为新的数据分配内存,当从Redis中删除数据时,它会释放对应的内存空间。
如果一个key写入的数据非常大,Redis在分配内存时也会比较耗时。同样的,当删除这个key的数据时,释放内存也会耗时比较久
。
业务层应该避免一个key存入过大的数据量

Redis提供了扫描大key的方法(以类型维度展示):
redis-cli -h $host -p $port --bigkeys -i 0.01
注意:在线上实例进行大key扫描时,Redis的QPS会突增,
为了降低扫描过程中对Redis的影响,需要控制扫描的频率,使用-i参数控制即可,它表示扫描过程中每次扫描的时间间隔,单位是秒。
原理:Redis在内部执行 scan命令,遍历所有key,然后针对不同类型的key执行strlen、llen、hlen、scard、zcard来获取字符串的长度以及容器类型(list/dict/set/zset)的元素个数。
		对于容器类型的key,只能扫描出元素最多的key,但元素最多的key不一定占用内存最多
针对大key的问题,Redis官方在4.0版本推出了lazy-free的机制,用于异步释放大key的内存,降低对Redis性能的影响。即使这样,也不建议使用大key,大key在集群的迁移过程中,也会影响到迁移的性能

3、集中过期
平时在使用Redis时没有延时比较大的情况,但在某个时间点突然出现一波延时,而且报慢的时间点很有规律,例如某个整点,或者间隔多久就会发生一次。
Redis的过期策略采用 主动过期+懒惰过期
两种策略:
主动过期:Redis内部维护一个定时任务,默认每隔100毫秒会从过期字典中随机取出20个key,删除过期的key,如果过期key的比例超过了25%,则继续获取20个key,删除过期的key,循环往复,直到过期key的比例下降到25%或者这次任务的执行耗时超过了25毫秒,才会退出循环
•懒惰过期:只有当访问某个key时,才判断这个key是否已过期,如果已经过期,则从实例中删除

注意, Redis的主动过期的定时任务,也是在Redis主线程中执行的
,也就是说如果在执行主动过期的过程中,出现了需要大量删除过期key的情况,那么在业务访问时,必须等这个过期任务执行结束,才可以处理业务请求。此时就会出现,业务访问延时增大的问题,最大延迟为25毫秒。
而且这个访问延迟的情况,不会记录在慢日志里。慢日志中 只记录真正执行某个命令的耗时,Redis主动过期策略执行在操作命令之前,如果操作命令耗时达不到慢日志阈值,它是不会计算在慢日志统计中的,但我们的业务却感到了延迟增大。
此时你需要检查你的业务,是否真的存在集中过期的代码,一般集中过期使用的命令是 expireat或 pexpireat命令,在代码中搜索这个关键字就可以了。

如果业务确实需要集中过期掉某些key,又不想导致Redis发生抖动,有什么优化方案?
解决方案是,在集中过期时增加一个随机时间,把这些需要过期的key的时间打散即可。

运维手段及时发现:
做法是需要把Redis的各项运行数据监控起来,执行info可以拿到所有的运行数据,在这里需要重点关注expired_keys这一项,它代表整个实例到目前为止,累计删除过期key的数量。
需要对这个指标监控,当在 很短时间内这个指标出现突增时,需要及时报警出来,然后与业务报慢的时间点对比分析,确认时间是否一致,如果一致,则可以认为确实是因为这个原因导致的延迟增大。

4、实例内存达到上限
当Redis内存达到 maxmemory后,每次写入新的数据之前,必须先踢出一部分数据,让内存维持在maxmemory之下。
这个踢出旧数据的逻辑也是需要消耗时间的,而具体耗时的长短,要取决于配置的淘汰策略:
• allkeys-lru:不管key是否设置了过期,淘汰最近最少访问的key
• volatile-lru:只淘汰最近最少访问并设置过期的key
• allkeys-random:不管key是否设置了过期,随机淘汰
• volatile-random:只随机淘汰有设置过期的key
• allkeys-ttl:不管key是否设置了过期,淘汰即将过期的key
• noeviction:不淘汰任何key,满容后再写入直接报错
• allkeys-lfu:不管key是否设置了过期,淘汰访问频率最低的key(4.0+支持)
• volatile-lfu:只淘汰访问频率最低的过期key(4.0+支持)
备注: allkeys-xxx表示从 所有的键值中淘汰数据,而 volatile-xxx表示从设置了 过期键的键值中淘汰数据。
注意:
1)但以上这些逻辑都是在访问Redis时, 真正命令执行之前执行的,也就是它会影响访问Redis时执行的命令。
2)如果此时Redis实例中有存储大key,那么 在淘汰大key释放内存时,这个耗时会更加久,延迟更大
3)考虑拆分实例的方法来缓解,拆分实例可以把一个实例淘汰key的压力 分摊到多个实例上,可以在一定程度降低延迟。

5、fork耗时严重
1)生成RDB和AOF都需要父进程 fork出一个子进程进行数据的持久化, 在fork执行过程中,父进程需要拷贝内存页表给子进程,如果整个实例内存占用很大,
那么需要拷贝的内存页表会比较耗时,此过程会消耗大量的CPU资源,在完成fork之前,整个实例会被阻塞住,无法处理任何请求,
如果此时CPU资源紧张,那么fork的时间会更长,甚至达到秒级。这会严重影响Redis的性能。
2)可以执行info命令,查看最后一次fork执行的耗时latest_fork_usec,单位 微秒。这个时间就是整个实例阻塞无法处理请求的时间。
3)除了因为备份的原因生成RDB之外, 在主从节点第一次建立数据同步时,主节点也会生成RDB文件给从节点进行一次全量同步,这时也会对Redis产生性能影响。
	要想避免这种情况,需要规划好数据备份的周期,建议在 从节点上执行备份,而且最好放在低峰期执行。如果对于丢失数据不敏感的业务,那么不建议开启AOF和AOF重写功能。
4)另外,fork的耗时也与系统有关,如果把Redis部署在虚拟机上,那么这个时间也会增大。所以使用Redis时建议部署在物理机上,降低fork的影响。

6、绑定CPU
很多时候,在部署服务时,为了提高性能,降低程序在使用多个CPU时上下文切换的性能损耗,一般会采用进程绑定CPU的操作。
但在使用Redis时,不建议这么干,原因如下:
绑定CPU的Redis,在进行数据持久化时,fork出的子进程,子进程会继承父进程的CPU使用偏好,而此时子进程会消耗大量的CPU资源进行数据持久化, 子进程会与主进程发生CPU争抢,这也会导致主进程的CPU资源不足访问延迟增大。
所以在部署Redis进程时,如果需要开启RDB和AOF重写机制,一定不能进行CPU绑定操作!

7、开启AOF
开启AOF后,Redis会把写入的命令实时写入到文件中,但 写入文件的过程是先写入内存,等内存中的数据超过一定阈值或达到一定时间后,内存中的内容才会被真正写入到磁盘中。
AOF为了保证文件写入磁盘的安全性,提供了3种刷盘机制:
•appendfsync always:每次写入都刷盘,对性能影响最大,占用磁盘IO比较高,数据安全性最高
•appendfsync everysec:1秒刷一次盘,对性能影响相对较小,节点宕机时最多丢失1秒的数据
•appendfsync no:按照操作系统的机制刷盘,对性能影响最小,数据安全性低,节点宕机丢失数据取决于操作系统刷盘机制

当使用第一种机制appendfsync always时,Redis每处理一次写命令,都会把这个命令写入磁盘,而且 这个操作是在主线程中执行的。
内存中的的数据写入磁盘,这个会加重磁盘的IO负担,操作磁盘成本要比操作内存的代价大得多。如果写入量很大,那么每次更新都会写入磁盘,此时机器的磁盘IO就会非常高,拖慢Redis的性能,因此不建议使用这种机制。
与第一种机制对比,appendfsync everysec会每隔1秒刷盘,而appendfsync no取决于操作系统的刷盘时间,安全性不高。因此我们推荐使用appendfsync everysec这种方式,在最坏的情况下,只会丢失1秒的数据,但它能保持较好的访问性能。
当然,对于有些业务场景,对丢失数据并不敏感,也可以不开启AOF。


8、使用Swap
每次访问的耗时都达到了几百毫秒甚至秒级,那此时就检查Redis是否使用到了Swap,这种情况下Redis基本上已经无法提供高性能的服务。
操作系统提供了Swap机制,目的是为了当内存不足时,可以把一部分内存中的数据换到磁盘上,以达到对内存使用的缓冲。

但当内存中的数据被换到磁盘上后,访问这些数据就需要从磁盘中读取,这个速度要比内存慢太多!

尤其是针对Redis这种高性能的内存数据库来说,如果Redis中的内存被换到磁盘上,对于Redis这种性能极其敏感的数据库,这个操作时间是无法接受的。
1)需要检查机器的内存使用情况,确认是否确实是因为内存不足导致使用到了Swap。
2)如果确实使用到了Swap,要及时整理内存空间,释放出足够的内存供Redis使用,然后释放Redis的Swap,让Redis重新使用内存。
3)释放Redis的Swap过程通常要重启实例,为了避免重启实例对业务的影响,一般先进行主从切换,然后释放旧主节点的Swap,重新启动服务,待数据同步完成后,再切换回主节点即可。

可见,当Redis使用到Swap后,此时的Redis的高性能基本被废掉,所以需要提前预防这种情况。
需要对Redis机器的内存和Swap使用情况进行监控,在内存不足和使用到Swap时及时报警出来,及时进行相应的处理。

9、网卡负载过高
特点就是从某个时间点之后就开始变慢,并且一直持续。这时你需要检查一下机器的网卡流量,是否存在网卡流量被跑满的情况。
网卡负载过高,在网络层和TCP层就会出现数据 发送延迟、数据丢包等情况。Redis的高性能除了内存之外,就在于网络IO,请求量突增会导致网卡负载变高。
如果出现这种情况,需要排查这个机器上的哪个Redis实例的流量过大占满了网络带宽,然后确认流量突增是否属于业务正常情况,如果属于那就需要及时扩容或迁移实例,避免这个机器的其他实例受到影响。
运维层面,需要对机器的各项指标增加监控,包括网络流量,在达到阈值时提前报警,及时与业务确认并扩容。

Redis为什么变慢了?一文讲透如何排查Redis性能问题 | 万字长文:https://mp.weixin.qq.com/s/In_0oWYFZ8Lm4i9yrjxHlw

面试竟被问到Redis事务,触及知识盲区,脸都绿了:https://mp.weixin.qq.com/s/Hevg_4YJT_PzVd1Z_yE1TQ

 

面试被问到Redis实现发布与订阅,手摸手教:https://mp.weixin.qq.com/s/0kIbhawdXvi8RHY5asHb2w

 

Redis的缓存三大问题: 看完这篇Redis缓存三大问题,保你能和面试官互扯。

关于Redis缓存,这3个问题一定要知道!:https://mp.weixin.qq.com/s/4nIPXybQXkOzLI8tkHoZVg

Redis的内存管理和淘汰策略: 别再问我Redis内存满了该怎么办了

持久化: 面试造飞机系列:面对Redis持久化连环Call,你还顶得住吗?

 

 

 

一文把Redis主从复制、哨兵、Cluster三种模式摸透:https://mp.weixin.qq.com/s/GlqoafdmC4Xjf7DACN3srQ

Redis搭建:https://www.cnblogs.com/zuidongfeng/p/8032505.html

 

面试官:为什么 Redis 要设计成单线程?我有点懵~:https://mp.weixin.qq.com/s/wKSYngpwmpuHXVtUwIlDfg

 

那天,我被拉入一个Redis群聊··· : https://mp.weixin.qq.com/s/EGGLueWahy7OeFXnU79d3Q

1、Redis主-从模式
主节点主要负责写数据
从节点主要负责读数据,然后做好数据同步
读写分离提高性能,另外主节点崩溃,从节点就顶上,实现高可用
小例子:
主:数据写成rdb文件
两个从:同步
主:刚刚生成RDB文件期间,又来的几条数据修改命令,先缓存起来,现在发给从节点
从:加载完RDB数据文件,然后执行命令列表,实现数据一致性
PS:
如果主节点有数据写入、删除、修改命令,也会把这些命令挨个通知到从节点,我们把这叫做命令传播。

2、一个从节点掉线
数据同步问题:
复制偏移量:最开始都从0开始,随着数据复制和同步,所有节点一起更新。后面只需比较各自的复制偏移量。

3、若有新节点加入
每次运行都生成一个运行ID,随机的,每次都不一样。
第一次同步的时候,主节点把自己的运行ID告诉从节点,后面从节点断线重连都要告诉主节点他之前保存的运行ID。
主节点拿到后和自己的比较一下就知道这个从节点之前是不是从自己这里复制数据的,是的话就只同步确实的部分,不是的话说明是新来的,把全部数据都同步给他。

4、主节点挂了,需要手动选择从节点升级为主节点来提供写入服务(不够智能)
专门选一个节点来当管理员,不用负责数据的读写,专门来统筹协调,谁要是掉线了,就在从节点里选一个出来顶上,这个管理员叫哨兵(Sentine)

5、管理员挂了?
三个节点当管理员,三个节点当1主2从
为了及时获得和更新主从节点的信息,咱们哨兵每隔十秒钟就要用INFO命令去问候一下主节点,主节点会告诉我他有哪些从节点
为了更加及时知道大家是否掉线,咱们哨兵每隔一秒都要用PING命令问候一下所有节点

6、主节点挂了?
如果在设置的时间里没有收到回复,我就知道这家伙多半是跪了,就该启动故障转移了。
为防止误判,每个管理员发现主节点掉线之后,这时候判定为主观下线,然后问一下其他管理员。
需要多个管理员都判定为下线,才能认定为客观下线,再启动后面的故障转移操作。
管理员谁先发现就主动发消息举手,先收到谁的信息就给谁投票,投过就不能再投。保证每次只选出一个领头出来。
1、选个新主节点
2、让其他从节点从主节点哪里同步数据
3、把原来旧的主节点改成从节点

7、选新主节点:
1、可以给每个节点设置一个优先级,不同节点的配置不一样,可以给配置更高的优先级更高一些,挑选的时候可以参考这个优先级
2、优先选择和主节点断开连接时间最短的节点,这样数据更新一些。
结合1和2:优先选择优先级更高、复制偏移量更大的节点

 

硬核!15张图解Redis为什么这么快:https://mp.weixin.qq.com/s/PMGYoySBrOMVZvRZIyTwXg

面试官:Redis 主从复制时网络开小差了怎么整?:https://mp.weixin.qq.com/s/-ZFrveKOOTiQO-3AFt9TBw

阿里面试这样问:redis 为什么把简单的字符串设计成 SDS?https://mp.weixin.qq.com/s/k41iYHZwYb3aiY_jmQiSfg

简单动态字符串SDS(simple dynamic string)

struct sdshdr{
  int free; // buf[]数组未使用字节的数量
  int len; // buf[]数组所保存的字符串的长度
  char buf[]; // 保存字符串的数组
}

效率高
数据溢出
内存重分配策略
    1.空间预分配
      额外分配未使用空间free的规则:
      如果对 SDS 字符串修改后,len 值小于 1M,那么此时额外分配未使用空间 free 的大小与len相等。
      如果对 SDS 字符串修改后,len 值大于等于 1M,那么此时额外分配未使用空间 free 的大小为1M。
    2.惰性空间释放
      当缩短SDS字符串后,并不会立即执行内存重分配来回收多余的空间,而是用free属性将这些空间记录下来,如果后续有增长操作,则可直接使用。
数据格式多样性
    redis 会以处理二进制的方式操作Buf数组中的数据,所以对存入其中的数据未做任何的限制、过滤,只要存进来什么样,取出来还是什么样。

Redis:从应用到底层,一文帮你搞定:https://mp.weixin.qq.com/s/elGaTcI-VUjTpgMeXU5A0g

这才叫细:带你深入理解Redis分布式锁:https://mp.weixin.qq.com/s/HPRTCCCe7c142yuvGJBy5Q

深入学习 Redis:Redis API 的原子性分析:https://mp.weixin.qq.com/s/mXhfR0wwGMk4DthRWYSPjg
Redis 主从配置心得及其高可用方案:https://mp.weixin.qq.com/s/anaEe5mh3ur19vHikotvfg
使用 Redis 解决“树”形数据的复杂查询:https://mp.weixin.qq.com/s/namtKpytUYGjzk9poGHydw
基于 Redis 实现分布式应用限流:https://mp.weixin.qq.com/s/XX_NuMUgcq5O3uuiIKcPxw
如何让网站不下线而从 Redis 2 迁移到 Redis 3:https://mp.weixin.qq.com/s/WFJZVLfcbC4xOlQOk-GcpA
Redis 集群部署及踩过的坑:https://mp.weixin.qq.com/s/f4OI4iAWg6N482iUVMEYNg
深入学习 Redis(1):Redis 内存模型:https://mp.weixin.qq.com/s/CnwsQ6cC5lzm8KfOUR3V8w
深入学习 Redis(2):持久化:https://mp.weixin.qq.com/s/3qCEHPJe_4_3upyHrvBYbg
深入学习 Redis(3):主从复制:https://mp.weixin.qq.com/s/vF6knXpL_Xo_aFH28jxjKA
深入学习 Redis(4):哨兵:https://mp.weixin.qq.com/s/9O3hALtmdfJT5LpwTcJTaQ
深入学习 Redis(5):集群:https://mp.weixin.qq.com/s/oDllfcVc5_ekIFP66kRP9w
分布式之 Redis 复习精讲:https://mp.weixin.qq.com/s/6ODw-0Sq0CiOFBqJv057UA
Redis 分布式锁:乐观锁的实现,以秒杀系统为例:https://mp.weixin.qq.com/s/WI0frOlYNxKWrZ6qKa3Gvg
当你启动 Redis 的时候,Redis 做了什么:https://mp.weixin.qq.com/s/v8etZwlIfWxaCTDhsUc_og
高可用 Redis 服务架构分析与搭建:https://mp.weixin.qq.com/s/1N4sMAFbfJozdvsEyOuuwA
Redis 集群的原理和搭建:https://mp.weixin.qq.com/s/p_PVchi1JHSESO9mvHsmVw
Redis 架构演变与 Redis-cluster 群集读写方案:https://mp.weixin.qq.com/s/mGV5oSAvI4BOtXskzvA3JQ
缓存服务的更新策略有哪些?:https://mp.weixin.qq.com/s/6kzZM4oJRG6mD2EmcWv92Q
Redis 避不开的五种数据结构:https://mp.weixin.qq.com/s/YoQEsMIxL3j8St4kbcYOig
Redis 数据结构和主要命令:https://mp.weixin.qq.com/s/Y7sxsbWeUO2XLLIib04SEw

Redis 简单案例(一):网站搜索的热搜词:https://mp.weixin.qq.com/s/QwUwi6PI2gHq-wXfCPxk_Q
Redis 分布式锁进化史解读 + 缺陷分析:https://mp.weixin.qq.com/s/ev8tDx1A_zUYg2Dbe1nLyg
Redis 主从复制以及主从复制原理:https://mp.weixin.qq.com/s/1WpXw5zPQ_J2E8eFs44aWg

Redis 分布式锁的正确实现方式(Java 版):https://mp.weixin.qq.com/s/C0i9zKwv7DP6R6qsFJg60Q
如何访问 redis 中的海量数据?避免事故产生:https://mp.weixin.qq.com/s/ENrBl7dUuakxEI8b8FHsdg
十二张图带你了解 Redis 的数据结构和对象系统:https://mp.weixin.qq.com/s/cUfpP_IjThsSUQANaCIXSQ
记一次找因 redis 使用不当导致应用卡死 bug 的过程:https://mp.weixin.qq.com/s/AdyEk3R8YRi3C9_NmDzsRA
Redis 不谈缓存和队列:https://mp.weixin.qq.com/s/DPYQU6fmHeqKivaMrRK61w
Redis 的内存淘汰策略:https://mp.weixin.qq.com/s/aefgM4P_QPZ04u_5JKYERg
比 Redis 快 5 倍的中间件,为啥这么快?:https://mp.weixin.qq.com/s/s0YJwVg5lko46MdV-YSl9A
使用 Redis 和 Spring Boot 执行异步任务:https://mp.weixin.qq.com/s/MmZAqXqfeZ5H65TTVmSpkw
使用基于 Redis 的 Java 布隆过滤器:https://mp.weixin.qq.com/s/OeklG0LVfuaQ4krGx6dzBg
我是如何用 Redis 做实时订阅推送的?:https://mp.weixin.qq.com/s/ieMNHnG022WzAYO2ACcvGg
禁止套娃!Redis 官网宕机,返回“连接不上 Redis”:https://mp.weixin.qq.com/s/bod2qTtSXia3EdSKdgK0pg

面试问 Redis 锁,我脸都绿了......:https://mp.weixin.qq.com/s/MeV8b6CEEODac6Ek2e0-OQ
Redis 6.0.0 GA 正式发布,有这些新特性:https://mp.weixin.qq.com/s/nKvQYyeoAoaMYiLcPPi8fw
Redis 6.0 新特性:多线程连环 13 问:https://mp.weixin.qq.com/s/uVYzDhirLngDlOothZ9QSA

Redis 的各项功能解决了哪些问题?:https://mp.weixin.qq.com/s/eN7FOv04RmlsGpSxKEczKQ
Redis 基本使用及百亿数据量中的使用技巧:https://mp.weixin.qq.com/s/MyeAsm-2_hhZmoemd8QnqQ
学 Redis ,至少要看看这篇!7000 字小结:https://mp.weixin.qq.com/s/NIYanQJIOfvfHMEZ8OcneQ
Redis从入门到精通,至少要看看这篇!:https://mp.weixin.qq.com/s/09uail0-K2uKMOg_sgQHqA
最适合新手的 Redis 基础:https://mp.weixin.qq.com/s/iitxQd6GdiII2tUqJCQVWw
Redis 你掌握多少了,来个查漏补缺?:https://mp.weixin.qq.com/s/eXRUwb8nftqN3l7BexkM4g
Redis 面试全攻略,读完这个就可以和面试官大战几个回合了:https://mp.weixin.qq.com/s/jLWKxQYOz6vA5aimh44OMg
来讨论一下这些常见的 Redis 面试题:https://mp.weixin.qq.com/s/EWeuz5l0vK4lj1DM87bCJw
还不懂 Redis?看完这个故事就明白了:https://mp.weixin.qq.com/s/JahITR3wNsby3t2N73bAFw
《我想进大厂》之 Redis 夺命连环 11 问:https://mp.weixin.qq.com/s/yLd8OpzY3V-kYz6jchwLTw
一不小心肝出了 4W 字的 Redis 面试教程:https://mp.weixin.qq.com/s/Dx9dP1hgUrmMaRHIK3J-Bw
几率大的 Redis 面试题(含答案):https://mp.weixin.qq.com/s/Gp4-BjxVm8IN14J8XU0qig
2W 字图解 Redis,扫盲必备!:https://mp.weixin.qq.com/s/76AAldw_frFZA7oyEUzG0Q

Redis 基础、高级特性与性能调优:https://mp.weixin.qq.com/s/Q5z7Bq3NtUPB9LC4diMi6w
Redis 性能问题分析:https://mp.weixin.qq.com/s/XJu04GSyGphXYOxmpb1YwA
Redis为什么变慢了?一文讲透如何排查Redis性能问题:https://mp.weixin.qq.com/s/V28iBI6yi1KL1DJ_pU7k3g
天啊,为什么我的 Redis 如此的慢?:https://mp.weixin.qq.com/s/-ypbj_FHaIROYVIvxW1uXQ

开发点赞评论收藏功能,用 MySQL 还是 Redis ?:https://mp.weixin.qq.com/s/0AFdazNxzG7IOLPiWdZemQ
对不起,网上找的 Redis 分布式锁都有漏洞!:https://mp.weixin.qq.com/s/zTiac43r20DROdN7UgcDSQ
一次由 Redis 分布式锁造成的重大事故:https://mp.weixin.qq.com/s/fAeLx9ORLqKGLWHhFbOQGw
太厉害了!这应该是目前Redis可视化工具最全的横向评测:https://mp.weixin.qq.com/s/lmDHHk8lhsvmx242YlH7bA
Redis 秒杀实战:https://mp.weixin.qq.com/s/rJwH1qmzERWDmttwMdVweA
一文把 Redis 主从复制、哨兵、Cluster 三种模式摸透:https://mp.weixin.qq.com/s/UWkse7ywGen8oj-Q-iKw0A
QPS 过万,Redis 大量连接超时怎么解决?:https://mp.weixin.qq.com/s/ZS-MhNlpB_pQr3yYphePXw
Redis 延时队列,这次彻底给你整明白了:https://mp.weixin.qq.com/s/-wfeu4_qklvSgWpqtb4uTA
那天,我被拉入一个 Redis 群聊···:https://mp.weixin.qq.com/s/NMDDtyPR5kQaFX7VjLyCdA
Redis 五大数据类型使用场景:https://mp.weixin.qq.com/s/FsL-54ALoNUAPcft-u8Leg
一文读懂 Redis 常见对象类型的底层数据结构:https://mp.weixin.qq.com/s/87wq0Fhy0R86nmwCmIW2Gw
一文深入 Redis 主从复制的原理详解,权威又科学:https://mp.weixin.qq.com/s/x_kgqrVIbQJSvzS3V8MlWg
缓存穿透,缓存击穿,缓存雪崩解决方案分析:https://mp.weixin.qq.com/s/zJJ94ZpXgJ-dz19IX-3AIw
如何设计缓存系统:缓存穿透,缓存击穿,缓存雪崩解决方案分析:https://mp.weixin.qq.com/s/8pcQ-Hbq5Wbpni9lI-8WCQ
Redis 核心篇:唯快不破的秘密:https://mp.weixin.qq.com/s/qx_P2dokv8uw6W9uWZIYNA
如何从0到1构建一个稳定、高性能的 Redis 集群?(附16张图解):https://mp.weixin.qq.com/s/qm7oVHfLw9shf7SS6GrPVQ
原来大厂的Redis分布式锁都这么设计的!:https://mp.weixin.qq.com/s/vGrrCb4pMGIXoMJblTY4sA

 

缓存穿透、缓存并发、缓存失效之思路变迁:https://mp.weixin.qq.com/s/JMa21zKncZTvMhVh4KmClg
Redis压缩列表原理与应用分析:https://mp.weixin.qq.com/s/XjhJT64A34g1gEPjfwZZzA
构建基于Redis的分布式锁:https://mp.weixin.qq.com/s/u7D-VHkXggo7JCXwwu1UYw
Redis集群原理的核心内容:https://mp.weixin.qq.com/s/ZhdZ-RrsurYrTVHrZWSIqw
Redis缓存整理总结:https://mp.weixin.qq.com/s/yyH62HlhjjCkXyXlNQRyvw
Redis——由分布式锁造成的重大事故:https://mp.weixin.qq.com/s/_GCz2p8F8Zx9D6Rv3rpNoQ
Redis和多路复用模型:https://mp.weixin.qq.com/s/Tbnn4Oua_NDI76pHxQr5_g
如何保证缓存与数据库的双写一致性?:https://mp.weixin.qq.com/s/HpwqjN87F5yr2YCobO6Q1Q
深入理解Redis事务:https://mp.weixin.qq.com/s/zYTsk_lhfl3T3Y2qPA8OAQ
搞懂这些Redis知识点,吊打面试官!:https://mp.weixin.qq.com/s/w1iynDR9RWyPzGxzwZqPoQ
你知道Redis可以实现延迟队列吗?:https://mp.weixin.qq.com/s/BOxxtsDlx5JSzsCqh7PugA
Redis 6.0 除了多线程,别忘了这个牛逼特性!:https://mp.weixin.qq.com/s/hskePMm62hWP6c7qhoXDZw
一步步实现 Redis 搜索引擎:https://mp.weixin.qq.com/s/Tx4A52WLMCUglwnvvbhIAA
Redis低成本高可用方案设计:https://mp.weixin.qq.com/s/F4xgXK_nNpfjFLMyEQCGbg
一文读懂Redis常见对象类型的底层数据结构:https://mp.weixin.qq.com/s/yD4WIaNC9ogtOhBHvzI11Q
【Redis】缓存的三大问题及其解决方案:https://mp.weixin.qq.com/s/0pZLlSScx3BQlGgY8kspZg
Redis基础、高级特性与性能调优:https://mp.weixin.qq.com/s/yUtZrmaE9EbhjoGzMCkFAw
内存耗尽后Redis会发生什么:https://mp.weixin.qq.com/s/10cTcjWS8qjaW5gPeOL1Dw
Redis官方的高可用性解决方案:https://mp.weixin.qq.com/s/xZHnURR8OSl-MhupbwWUNA
不依赖客户端库,实现Redis主从架构的高可用/读写分离/负载均衡:https://mp.weixin.qq.com/s/w-9DBk4MYYjeJKhwUg_n4w

 

 

 

 

你可能感兴趣的:(Redis)