![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内卷狂牛
文章平均质量分 86
天秤座的架构师
非著名架构师
展开
-
06 Redis 跳表详解
什么是有序集合顺便一下set,上次我们说过,set也是使用dict实现,只不过value是null,所以不过多说了。言归正传,zset是redis中最具有特色的数据结构,类似于java中的SorteddSet和HashMap的结合,首先它有set不可重复的特性,在这个基础上,还可以给value赋予一个score(排序权重)。那适合什么样的场景呢,举个栗子,可以实现一个书的榜单,value是书名,score是书的评分,如下。>zaddbooks9.0"think...转载 2022-02-11 11:12:15 · 535 阅读 · 0 评论 -
06 Redis中BigKey、HotKey的发现与处理
一 前言在Redis的使用过程中,我们经常会遇到BigKey(下文将其称为“大key”)及HotKey(下文将其称为“热key”)。大Key与热Key如果未能及时发现并进行处理,很可能会使服务性能下降、用户体验变差,甚至引发大面积故障。二 大Key与热Key的定义我们经常能够在公司内部的Redis开发使用规范手册,或网络中大量的Redis最佳实践文章里看到有关大Key、热Key的定义,然而这些资料中的大Key热Key判定标准却不尽相同,但可以明确的是,它们的判定维度是一致...原创 2022-02-11 11:04:04 · 22231 阅读 · 0 评论 -
05 Redis 持久化的设计和实现
Redis 作为一种非常流行的内存数据库,通过将数据保存在内存中,Redis 得以拥有极高的读写性能。但是一旦进程退出,Redis 的数据就会全部丢失。为了解决这个问题,Redis 提供了 RDB 和 AOF 两种持久化方案,将内存中的数据保存到磁盘中,避免数据丢失。本文将重点讨论AOF持久化方案,以及其存在的一些问题,并探讨在Redis 7.0(已发布RC1)中Multi Part AOF,下文简称为MP-AOF。一 AOF...原创 2022-02-11 11:00:05 · 22513 阅读 · 0 评论 -
03 Redis 网络IO模型简介
1Redis中的单线程模型提起Redis,我们经常会说其底层是一个单线程模型,但这是不严谨的。Redis单线程指的是网络请求模块使用了一个线程,即一个线程处理所有网络请求,其他模块该使用多线程,仍会使用了多个线程。既然是单线程模型,那么CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽。2Redis中的单线程模型Redis基于Reactor模式开发了自己的网络事件处理器,称之为文件事件处理器(File Event Hanlder)。文件事件处理...原创 2022-02-11 04:56:12 · 25213 阅读 · 3 评论 -
04 Redis 线程模型简介
1. 同步与异步当我们同步的执行某个任务时,我们需要等到这个任务执行完给我们反馈结果,我们才能去执行其他的任务。 但是异步的执行某个任务时,我们可以不用等这个任务结束就去执行另一项任务。就像常用到的异步刷新操作。通过异步执行的任务执行结束后我们可以通过回调函数获得结果。我们可以明显的看出同步和异步的差别,那异步操作那么好为什么不都使用异步操作呢?同步操作存在的意义是有些任务必须是按顺序执行的,就像我们去银行取钱,最起码的保证你的银行账户里有钱你才能取,要不然岂不是去抢银行了。2. 并发与并行原创 2022-02-11 04:55:48 · 21798 阅读 · 0 评论 -
02 Redis 底层数据结构
一、不同数据类型存储结构Redis底层数据结构一共有 6 种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。它们和数据类型的对应关系如下图所示:1 数组与链表的区别数组和链表是所有数据结构的基础,其差别在于数据在内存中分步是连续的,详情请参考:参考1: 数据结构之数组和链表的区别_Jasminexjf的博客-CSDN博客_数组与链表的区别第一题便是数据结构中的数组和链表的区别数组(Array)一、数组特点:所谓数组,就是相同数据类型的元素按一定顺序排列的...原创 2022-02-11 02:37:29 · 21310 阅读 · 0 评论 -
01 Redis源码起航
源码解读Redis 源码文件分布大致如下:原创 2022-02-10 16:48:11 · 21332 阅读 · 0 评论