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

linux运维学习第十三周

目录

1、Redis

1.1Redis的安装

1.2Redis主从集群搭建

1.3Redis哨兵搭建

1.4Redis持久化

1.4.1持久化算法

1.4.1RDB原理

1.4.2RDB触发方式

1.4.3RDB优缺点

1.4.4AOF原理

1.4.5AOF配置

1.4.6AOF优缺点

1.5淘汰策略


1、Redis

1.1Redis的安装

安装redis-CSDN博客

1.2Redis主从集群搭建

Redis主从复制搭建-CSDN博客

1.3Redis哨兵搭建

Redis哨兵模式搭建-CSDN博客

1.4Redis持久化

1.4.1持久化算法

持久化算法分为RDB(快照持久化)和AOF(日志持久化)

1.4.1RDB原理

RDB 是 Redis 默认的持久化方式,通过生成某一时刻的全量数据快照(二进制文件)实现持久化。
当触发 RDB 时,Redis 会通过 fork() 系统调用创建一个子进程,子进程负责将内存中的全量数据写入临时 RDB 文件,写入完成后替换旧 RDB 文件。

过程中使用 写时复制(Copy-On-Write, COW)机制:主进程(父进程)继续处理客户端请求,若修改已存在的数据,会复制一份副本供子进程写入,确保子进程读取的是 fork 时刻的快照数据,不影响主进程正常运行。

1.4.2RDB触发方式

手动触发:

 save:主进程直接执行 RDB 生成,期间阻塞所有客户端请求(不推荐)。
 bgsave:后台异步执行,主进程通过 fork 子进程处理,不阻塞客户端(推荐)。

自动触发:

配置文件中通过 save <seconds> <changes> 定义触发条件(如 save 3600 1 表示 3600 秒内有 1 次修改则触发)。

1.4.3RDB优缺点

优点:
 快照文件(.rdb)体积小,恢复速度快(直接加载二进制文件到内存)。
 适合全量备份(如每日备份)和灾难恢复。
 缺点:
 数据安全性低:若在两次快照间隔内 Redis 崩溃,期间的数据会丢失(丢失量取决于快照间隔)。
 全量写入成本高:fork 子进程时若数据量大,可能阻塞主进程(fork 耗时与内存量正相关)。

1.4.4AOF原理

客户端的每一条写命令(如修改、删除)都会被追加到 AOF 缓冲区,再根据配置的同步策略写入磁盘 AOF 文件。
为避免 AOF 文件过大(如重复执行 incr key 会导致大量冗余命令),Redis 引入 AOF 重写(Rewrite)机制:通过子进程重新扫描内存数据,生成最小化的命令集(如将 100 次 incr key 合并为 set key 100),替换旧 AOF 文件。

1.4.5AOF配置

同步策略(通过 appendfsync 控制,影响安全性与性能):
 always:每写一条命令就同步到磁盘(安全性最高,性能最差)。
 everysec:每秒同步一次(默认,平衡安全性与性能,最多丢失 1 秒数据)。
 no:由操作系统决定何时同步(性能最好,安全性最低)。
 重写触发:
 手动:bgrewriteaof(后台异步执行)。
 自动:通过 auto-aof-rewrite-min-size(最小文件大小)和 auto-aof-rewrite-percentage(文件增长比例)配置触发条件。

1.4.6AOF优缺点

优点:
 数据安全性高:可通过同步策略控制数据丢失量(最多丢失 1 秒数据)。
 命令日志可读性强(文本文件)。
 缺点:
 AOF 文件体积通常远大于 RDB(尤其未重写时),恢复速度慢(需重新执行所有命令)。
 重写过程仍可能占用资源。

1.5淘汰策略

当 Redis 内存使用达到 maxmemory 配置阈值时,会触发淘汰策略释放内存,确保新数据可写入。核心策略分为不淘汰和主动淘汰两类。

不淘汰:

 noeviction(默认):当内存不足时,拒绝所有写操作(返回错误),读操作正常执行。适用于不允许数据丢失的场景(如核心业务数据)。

主动淘汰:

根据淘汰范围(全量键 / 仅过期键)和淘汰规则(随机、LRU、LFU、TTL)分类:
allkeys-random    从所有键中随机淘汰一个键                                         
allkeys-lru            淘汰最近最少使用(LRU)的键                                        
allkeys-lfu            淘汰最不经常使用(LFU)的键                                       
volatile-random   从设置了过期时间的键中随机淘汰                                      
volatile-lru           从设置了过期时间的键中淘汰最近最少使用的键                      
volatile-lfu           从设置了过期时间的键中淘汰最不经常使用的键                          
volatile-ttl           从设置了过期时间的键中,淘汰剩余生存时间(TTL)最短的键    
 


 

http://www.lryc.cn/news/605472.html

相关文章:

  • Linux 服务器性能优化:性能监控,系统性能调优,进程优先级,内核升级全解析
  • 前端框架Vue3(二)——Vue3核心语法之OptionsAPI与CompositionAPI与setup
  • AWS云安全审计终极实战指南:构建自动化安全防线
  • 数字化应急预案:构筑现代安全防线
  • Web3:在 VSCode 中使用 Vue 前端与已部署的 Solidity 智能合约进行交互
  • 从渠道渗透到圈层渗透:开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新路径研究
  • 【09】大恒相机SDK C#开发 ——库函数 IntPtr ConvertToRGB24详细解释 及 示例
  • 【JEECG】JVxeTable表格拖拽排序功能
  • 动态规划Day5学习心得
  • python的异步、并发开发
  • (C++)C++类和类的方法(基础教程)(与Python类的区别)
  • C++提高编程学习--模板
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-50,(知识点:TCP/IP 模型)
  • 磁盘IO优先级控制对美国服务器存储子系统的调优验证
  • 02 基于sklearn的机械学习-KNN算法、模型选择与调优(交叉验证、朴素贝叶斯算法、拉普拉斯平滑)、决策树(信息增益、基尼指数)、随机森林
  • 【动态规划 | 多状态问题】动态规划求解多状态问题
  • YOLO---01目标检测基础
  • windows环境下MySQL 8.0 修改或重置密码
  • Mybatis分页查询当前页数据条数大于实际返回的数据条数
  • 7.5将模块分离到不同的文件中
  • 【JEECG】BasicTable单元格编辑,插槽添加下拉组件样式错位
  • 跳跃表可视化深度解析:动态演示数据结构核心原理
  • Docker-01.Docker课程介绍
  • 分层解耦(Controller,Service,Dao)
  • 从映射到共生:元宇宙、物联网与AI的智能融合生态图谱
  • nav2--安装/教程
  • 如何保证数据库的持久性与一致性:从 Linux 磁盘缓存策略到 MySQL 的设计
  • [SKE]使用gmssl库实现AES、SM4、DES、RSA、3DES_EDE和3DES_EEE算法的加密/解密参考模型
  • GitPython01-依赖排查
  • 8. 网络层