当前位置: 首页 > article >正文

redis趣味解读

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.kler.cn/a/582038.html

相关文章:

  • chrome源码中非常巧妙、复杂或者不常见的技术手段
  • 天地图的使用
  • 【机械视觉】C#+VisionPro联合编程———【五、硬币检测小项目实现(C#+VisionPro联合编程和csv文件格式操作)】
  • Vue主流的状态保存框架对比
  • git无法提交解决方案--! [rejected] master -> master (non-fast-forward)
  • WLAN(无线局域网)安全
  • 《PyCharm 重命名项目文件时遇到 java.io.IOException 的终极解决方案》
  • [java]增强for循环
  • 误删/lib64/ld-linux-x86-64.so.2导致系统崩溃
  • php中JSON或数组到formData的键值对转换
  • Qt的Tcp通信
  • mysql的MGR
  • 基于生成式人工智能的网络安全主动防御技术(下)
  • C++ 编程基础:注释、字符串、输入输出、日期处理、修饰符
  • 2025最新软件测试面试八股文(含答案+文档)
  • CSS伸缩盒模型(弹性盒子)
  • 01 音视频知识学习(视频)
  • 写一个简单的SQL生成工具
  • 算法刷题--贪心算法
  • Sentinel-1 InSAR ISCE数据处理:stackSentinel.py 完全指南