- 博客(31)
- 收藏
- 关注
原创 Redis之缓存一致性
前面的文章我们已经介绍过了缓存的三种异常(缓存击穿、缓存穿透和缓存雪崩)以及如何解决。这篇文章我们来讲解一下缓存一致性问题。
2025-06-16 15:02:52
1299
原创 Redis缓存异常三兄弟
之前的文章我们详细讲解了Redis的三种集群模式,这篇文章我们来讲解一下Redis缓存异常的三种情况。缓存击穿、缓存穿透、缓存雪崩这三个问题是Redis在实际项目中会经常遇到的问题。
2025-06-15 14:43:39
658
原创 Redis集群模式之Redis Cluster(3)
上篇文章我们讲解了Redis Cluster的状态监测与恢复过程,这篇文章我们来进行Redis Cluster内容的收尾,将其扩容和缩容的过程进行讲解,并分析RedisCluster的优缺点。
2025-06-14 15:04:59
753
原创 Redis集群模式之Redis Cluster(2)
上篇文章我们讲解了Redis Cluster中的主要模块和两种重定向方式,这篇文章我们来讲解一下Redis Cluster的状态监测和维护。
2025-06-14 13:16:32
972
原创 Redis集群模式之Redis Cluster(1)
在前面的文章中我们介绍了什么是主从复制模式和哨兵模式,这两种模式虽然可以使用读写分离策略对读的并发性进行扩展,但是写能力和存储能力无法得到有效的扩展,只能是主节点服务器单服务器的性能上限。如果面对海量数据的存储,就要构建主节点之间的集群,同时要兼具上面两种模式的优点,也就是每个主节点必须有自己的从节点来进行数据冗余存储,这就是Redis Cluster模式。
2025-06-12 15:05:33
934
原创 Redis集群模式之哨兵模式(1)
前两篇文章我们讲解了主从复制的集群模式,这种集群模式虽然能够保证数据在多台从节点服务器上得到保存,但是一旦主节点服务器故障,让从节点服务器转变为主节点服务器的过程需要手动操作,这也就意味着在故障恢复这一段时间内的所有请求都会失效,这在业务上是灾难性的,所以在实际业务中,主从复制模式一般不会被使用,但是他是哨兵模式和cluster集群模式的基石,本文要讲的哨兵模式就实现了故障转移的自动进行。
2025-06-10 15:48:10
678
原创 Redis集群模式之主从复制模式(1)
前面的文章我们将Redis的一些基础的知识点,从这篇文章开始我们从高可用角度来讲解一下Redis的集群模式。
2025-06-08 12:21:57
931
原创 Redis数据持久化之RDB快照
前面两篇文章我们讲解了Redis数据持久化技术中的AOF日志,这篇文章我们来详细讲解一下Redis中另一种数据持久化方式——RDB快照。
2025-06-07 15:01:46
896
原创 Redis数据持久化之AOF日志(2)
上一篇文章中我们介绍了什么是AOF日志以及AOF的写回策略。这篇文章我们来详细讲解一下AOF的重写机制和实现原理。
2025-06-07 11:45:35
1235
原创 Redis中的过期策略与内存淘汰策略
本文介绍了Redis的过期策略与内存淘汰机制。Redis提供EXPIRE、PEXPIRE等4种命令设置键过期时间,并通过过期字典管理过期键。其采用惰性删除(访问时检查)和定期删除(随机抽查)相结合的过期键删除策略,平衡内存和CPU效率。在内存不足时,Redis提供多种淘汰策略,包括LRU(最近最少使用)、LFU(最不经常使用)等算法,其中allkeys-lru是常用策略。这些机制共同保障Redis的内存管理和高效运行。
2025-06-04 15:35:29
617
原创 Redis线程模型
Redis采用单线程模型主要是基于性能和维护性的考量:一方面,Redis作为内存数据库,CPU通常不是瓶颈,网络IO才是关键,单线程避免了线程切换开销;另一方面,单线程简化了数据结构的并发控制。
2025-06-03 15:43:23
1199
原创 Redis底层数据结构之深入理解跳表(1)
本文详细介绍了Redis跳表(SkipList)的增删查操作实现原理。主要内容包括:1. 跳表初始化过程,随机指定层数并创建头尾节点;2. 添加元素时的层数随机扩展机制及插入逻辑;3. 搜索时从顶层开始逐层查找的流程;4. 删除操作需移除所有层对应节点的实现方法。
2025-06-01 15:49:16
470
原创 Redis底层数据结构之跳表(SkipList)
Redis有序集合ZSet采用跳表(SkipList)作为底层数据结构,通过多层索引实现高效查询。相比标准跳表,Redis优化为允许重复score并增加回退指针,支持双向遍历。
2025-05-31 15:39:19
1262
原创 Redis底层数据结构之字典(Dict)
Redis的Dict数据结构采用哈希表实现,通过两个dictht结构(ht[0]和ht[1])支持渐进式扩容机制。
2025-05-30 16:50:59
1273
原创 Redis底层数据结构之快链表(QuickList)
本文介绍了Redis中的QuickList数据结构。QuickList是一种结合了双向链表和ZipList的混合结构,每个链表节点存储一个ZipList。
2025-05-29 15:45:25
978
原创 Redis底层数据结构之压缩链表(ZipList)
Redis的ZipList是一种为节省内存设计的紧凑双向链表结构。它支持O(1)时间复杂度的头尾操作,通过zlbytes、zltail、zllen等头部字段管理列表。Entry节点包含prevlen(前驱长度)、encoding(编码类型)和entry-data(实际数据),其中prevlen可能引发连锁更新问题。
2025-05-28 16:39:15
708
原创 Redis底层数据结构之动态字符串(SDS)
本文介绍了Redis底层数据结构SDS(Simple Dynamic String)的设计原理及其优势。SDS通过len、alloc等字段实现O(1)时间复杂度获取字符串长度、二进制安全、避免缓冲区溢出,并利用空间预分配和惰性空间释放优化性能。相比C语言原生字符串,SDS更适应Redis的高效需求,如频繁的字符串追加和长度计算。文章还探讨了SDS的空间分配规则及其潜在内存影响。
2025-05-27 20:56:08
773
原创 单片机模拟手机通讯录(含搜索联系人功能)
具体功能概括在前边模拟过短信接收装置的基础上,添加上了搜索功能,可以通过联系人的姓的大写首字母来进行联系人电话号码的搜索。按键类似于老式手机的按键:7(A B C) 8(D E F) 9(G H I) 储存键4(J K L) 5(M N O)6(P Q R)读取和显示键1(S T U) 2(V W X) 3(Y Z) 删除键上翻键 0 下翻键 空闲键(括号表示按下不同的次数对应不同的数字和字母)按键的时序是,通过串口发送
2021-06-17 12:10:22
771
原创 单片机制作“电子炸弹”(可实现安放与拆除功能)
灵感来源:一位室友非常喜欢打"CS GO",经常因残局对炸弹的安放或拆除成功而高兴地大喊大叫(手动滑稽),于是我萌生了一个有趣的想法,用单片机来模拟出一个没有伤害的电子炸弹。电子炸弹的具体功能:首先用LCD1602来模拟电子炸弹的显示屏,在刚开始时,上边显示“Dismantle Bomb!”、“remote 6!”的字样,然后安放炸弹的人在输入“0748”后炸弹开始倒计时,允许输入错误无数次,直到输入成功为止。炸弹最多坚持30s,1s减一次,剩余的时间显示在屏幕的右下角。30s到20s之间,每2s响
2021-06-13 20:01:17
3732
8
原创 单片机模拟手机屏幕亮度调节功能
概括:通过运用AD/DA转换芯片来输出电压控制LED灯的亮度,实现在较暗环境下LED灯亮度偏弱,在较亮环境下LED灯亮度偏强的效果。用到的核心模块为XPT2046芯片,通过PWM波的调控来实现上述效果。源代码:#include <reg52.h>#include <intrins.h>typedef unsigned int uint;typedef unsigned char uchar;#define CH0 0x94//光敏通道#define CH1 0xd
2021-06-13 18:48:35
865
原创 单片机模拟短信接收装置
产生:单片机能不能做出一些高级有好van的东西呢?答案当然是可以,这次用单片机模拟的短信接收装置个人感觉比较不错,所以就拿出来分享了。简介:使用的板子是"STC89C52",用到的核心模块是LCD1602和AT24C02模块,短信的输入和发送用到串口通信,矩阵键盘用来决定短信存储的位置和一系列对短信的操作。具体功能:使用串口发送字符串模拟短信内容的发送,之后通过LCD1602进行短信内容的显示模拟短信的接收,通过AT24C02实现短信的储存,删除,读取条数等功能。每条短信上限为32个字节,最多储存
2021-04-24 16:28:40
737
原创 51单片机实现密码锁(有掉电保护功能)
简介:所用单片机型号为"STC89C52",用到的模块有AT24C02、LCD1602、矩阵键盘和独立键盘、led灯和蜂鸣器。主要实现的功能:可以模拟日常生活中的密码锁,密码长度为8位,烧录成功后没有初始密码,需要先设置一个初始密码。初始密码设置成功后,通过再次输入设置的密码即可开锁。在掉电后重新上电,设置的密码不变。开锁成功后可进行密码的修改和对led灯的控制。具体的现象:烧录成功后,按下初始密码设置键,显示屏会出现"Set Password"的字样,在输入初始密码时,led灯会逐个亮起,表示输
2021-04-16 21:50:49
7624
5
原创 51单片机实现简易计算器
简介:使用的单片机型号为"STC89C52",使用的模块为独立键盘和矩阵键盘,LED,蜂鸣器,数码管这些较基础的模块。具体功能:可以实现两个数字的加减乘除运算(两个数字为整数,位数可调,区分正负),结果保留整数,区分正负。在输入错误时有删除键,可以一位一位的删除(比如输入34,按下删除键后就变为3)。数码管显示时,需要用到的点亮,不需要用到的没有被点亮(个人认为这样比较舒服~)。计算器的按键分布:7 8 9 +4 5 6 -1 2 3 *D 0 = ÷F T W R(D为删除键,F为关机
2021-04-14 14:46:53
9284
11
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人