redis趣味解读

server/2025/3/16 0:12:50/

redis

学习cpu给数据库也增加一个缓存

把数据都记录在内存

把数据都记录在内存中,不用去记录慢如蜗牛的I/O操作,执行redis缓存查询节省不少时间

定期删除

设置多少时间,交给应用程序自己设置

redis执行把过期内存删除,100ms就做一次,1秒钟就是10次

随机删除一部分,缓解内存压力

惰性删除

一些键值未被算法选中随机删除掉,已超期的,遇到查询请求立即删除。

内存淘汰策略

缓存击穿

过期时间均匀分布+热点数据永不过期

ROB备份

mysql二进制日志文件--二进制数据,所有数据更改操作

AOF持久化

指令合并

临时缓冲区aof_buf,择期写入aof

aof_rewrite_buf 重写缓冲区,从创建重写子进程的那一刻起,把后面进来的命令也copy一份写入这个重写缓冲区中,等到子进程重写文件结束后,再把这个缓冲区的命令写入到新的aof文件中,最后再重命名新的文件

Redis哨兵与高可用原理

主节点:数据写入和同步

主节点数据写RDB文件给从节点同步,如果主节点有数据写入、删除、修改命令,也会把这些命令挨个通知到从节点

主节点内部准备一个缓冲区,后面传播命令的时候,除了同步给从节点,也往缓冲区写一份。下次再掉线就把缓冲区里命令最近的发给从节点

游标

哨兵

故障转移

新主节点选择标准

扩容

把主从节点内存拼起来,每个人负责一部分数据,合体进化成一个大的缓存服务器,变成一个集群,握手协议接纳新缓存服务器扩容

加入集群可以通过任何一个节点,有IP和端口,发送MEET信息发起握手,对方回复PONG信息,同意入伙,最后再回一个ping信息,三次握手就完成了,然后再通知其他节点。

数据存储公平

学习哈希表的方法

根据能力分配槽位,内存空间大的分的多

键值读写的时候,对键值做哈希计算,映射到哪个槽位就由谁负责,启动的时候,每个人都得把自己负责的槽位信息告诉其他节点,为了压缩空间,每个槽位就用一个bit来表示,自己负责的是1,否则是0,总共2048字节

准备超大数组同步数据由谁处理

高可用哨兵+主从


http://www.ppmy.cn/server/175290.html

相关文章

【PyCharm2024】一些好用的小功能

目录 一、全局查找及替换关键字 方法一: 方法二: 二、调整字体大小 三、调整Terminal的字体大小 四、改变行注释的斜体以及颜色 一、全局查找及替换关键字 编写程序时,通常想要在所有文件中查找或者替换某个词。 方法一: …

Golang编译器DIY,手搓 if err != nil { return err } 语法糖

前序 在go的社区里,下面这三行代码是被吐槽的最多的 if err ! nil {return err }从代码之整洁美观的角度看,这样的写法也是让人不舒服的。尤其是 当有很多错误需要处理的时候,就会发现通篇都是这三行。 所以想着看看修改一下编译器&#xf…

复原IP地址 (leetcode 93

leetcode系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 一、核心操作 判断字段是否有效函数:首先start不能大于end当到最后一个收获层的时候,start已经是s.size了,但是end还是只能是s.size-1其次当字段不止一位时&#…

VSCode C/C++环境搭建指南

VSCode C/C环境搭建指南 一、环境搭建全流程(Windows/Linux/macOS) 1. 编译器安装与配置(以Windows为例) • MinGW-w64详细安装 • 访问 MinGW-w64官网,选择 x86_64-posix-seh 分支(支持C23和多线程开发…

Driver Development Kit(驱动开发服务)

文章目录 一、Driver Development Kit 简介二、外设扩展驱动客户端开发指导一、Driver Development Kit 简介 Driver Development Kit(驱动开发套件)为外设驱动开发者提供高效、安全、丰富的外设扩展驱动开发解决方案C-API,支持外设驱动开发者为消费者带来外设即插即用的极…

JavaScript 性能优化实战指南

涵盖代码优化、内存管理、运行时效率提升等核心方向&#xff0c;通过实战代码示例分析常见性能陷阱及优化方案&#xff1a; 一、代码执行效率优化 1. 避免全局变量污染 <JAVASCRIPT> // ❌ 低效&#xff1a;全局查找耗时长 function sum(a, b) {return a b window.ta…

‌Visual Studio Code(VS Code)支持的编程语言

‌JavaScript‌&#xff1a;VS Code 原生支持 JavaScript&#xff0c;提供语法高亮、代码折叠、自动补全等功能。推荐使用ESLint和Prettier进行代码格式化和错误检查‌。 ‌TypeScript‌&#xff1a;作为 JavaScript 的超集&#xff0c;TypeScript 在 VS Code 中也得到原生支持…

功能仿真

1、仿真原理 1.1、 串行模拟并行思路分析 串行模拟并行仿真主要分为两种情况&#xff1a;独立的并行电路 有关联的并行电路。 独立的并行电路&#xff1a;若并行的电路之间是相互独立的&#xff0c;同时开始多件事情和逐个执行是完全一样的。 有关联的并行电路运行&am…