自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Redis之分布式锁(4)

这篇文章我们来讲解一下如何基于Zookeeper来实现分布式锁。

2025-06-20 11:40:18 916

原创 Redis之分布式锁(3)

这篇文章我们来详细介绍一下如何正确地基于Redis实现分布式锁。

2025-06-19 15:06:50 402

原创 Redis之分布式锁(2)

上一篇文章我们介绍了什么是分布式锁和分布式锁的一些基本概念。这篇文章我们来讲解一下基于数据库如何实现分布式锁。

2025-06-18 17:29:54 891

原创 Redis之分布式锁(1)

前面的文章我们把Redis的基本知识都已经讲解完毕了,下面我们带入具体的场景中来逐步深入了解一下分布式锁问题。

2025-06-17 15:17:13 813

原创 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集群模式之哨兵模式(2)

上篇文章我们讲解了哨兵模式是干什么的以及怎么干的。这篇文章我们通过几个问题来深入理解一下哨兵模式。

2025-06-11 14:45:10 684

原创 Redis集群模式之哨兵模式(1)

前两篇文章我们讲解了主从复制的集群模式,这种集群模式虽然能够保证数据在多台从节点服务器上得到保存,但是一旦主节点服务器故障,让从节点服务器转变为主节点服务器的过程需要手动操作,这也就意味着在故障恢复这一段时间内的所有请求都会失效,这在业务上是灾难性的,所以在实际业务中,主从复制模式一般不会被使用,但是他是哨兵模式和cluster集群模式的基石,本文要讲的哨兵模式就实现了故障转移的自动进行。

2025-06-10 15:48:10 678

原创 Redis集群模式之主从复制模式(2)

上一篇文章我们主要讲解了什么是主从复制模式,这一篇文章我们结合几个问题来更深入的理解一下主从复制模式。

2025-06-08 15:44:58 677

原创 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数据持久化之AOF日志(1)

Redis提供AOF日志持久化方式,通过记录写操作命令实现数据恢复。

2025-06-05 15:13:09 837

原创 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底层数据结构之深入理解跳表(2)

本文探讨了跳表在多线程环境下的并发安全问题。

2025-06-02 15:56:21 1026

原创 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关注的人

提示
确定要删除当前文章?
取消 删除