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

redis 持久化 与 键淘汰策略

redis运维核心: aof日志(全持久化 增量) 、 rdb(半持久化/全量备份) 、 键淘汰策略 、 高可用

1、Redis是基于内存的,一旦Redis重启/退出/故障,内存的数据将会全部丢失。故而有了持久化。
2、持久化:将内存中的数据存于磁盘中,有两种方式: RDB快照 与 AOF日志
3、Redis服务器在启动的时候,如果发现有RDB文件,就会自动载入RDB文件(不需要人工干预) 服务器在载入RDB文件期间,会处于阻塞状态,直到载入工作完成。
4、如果设置了 AOF 持久化并且 AOF 文件存在,则 Redis 优先选择加载 AOF 文件进行恢复。这意味着 Redis 将使用 AOF 文件重建数据库,而忽略 RDB 文件。

一、RDB(快照持久化)

1、在指定的时间间隔内生成一个包含 Redis 数据快照的二进制文件。该文件包含了数据库中所有数据的副本,包括键值对、过期时间等信息。
也可以手动执行,也可以根据服务器配置定期执行。
手动生成RDB文件: save 或 bgsave
6379> save :服务器不能接收任何请求,直到RDB文件创建完毕为止.
6379> bgsave :会开启一个线程,由线程来创建RDB文件,服务器进程可以继续接收请求。

root@02d2e002309c:/data# redis-cli INFO Persistence|grep -iw rdb_last_bgsave_status  //检查bgsave是否执行完
rdb_last_bgsave_status:ok    //OK 表示已经bgsave完毕

3、Redis可以通过这个文件还原数据库的数据。
关闭服务 > rdb文件至目录中 > 启动服务 (Redis 在还原期间会阻塞,并且无法响应其他命令请求。)

二、AOF日志(append-only-file)

AOF 当Redis服务器执行写命令的时候,将执行的写命令保存到AOF文件中。
需要定期减小Redis AOF 文件的体积时,
使用 :CONFIG REWRITE 或 BGREWRITEAOF 命令来手动减小文件

CLI 6379>  CONFIG REWRITE  //会立即触发 AOF Rewriting 进程,并且会阻塞其他客户端请求,直到重写过程完成。
或 CLI 6379> BGREWRITEAOF // 命令来执行 AOF Rewriting。 会在后台异步启动 AOF Rewriting 进程,不会阻塞其他客

户端请求。
2、再使用redis-cli INFO |grep -iwE aof_rewrite_in_progress 命令来查看进度,1表示进行中,0表示已完成

root@02d2e002309c:/data# redis-cli INFO |grep -iwE aof_rewrite_in_progress
aof_rewrite_in_progress:0

三、RDB与 AOF配置

RDB //save命令会进程阻塞 时间 修改次数 增量快照 save仅对rdb持久化有用

 save 900 1    //最近 900 秒(15 分钟)内至少有一个键被修改时,执行一次保存操作。save 300 10  //最近 300 秒(5 分钟)内至少有 10 个键被修改时,执行一次保存操作。save 60  10000  //最近 60 秒内至少有 10000 个键被修改时,执行一次保存操作。stop-writes-on-bgsave-error yes  //当启用了RDB且最后一次后台保存数据失败,Redis是否停止接收数据rdbcompression yes     //对于存储到磁盘中的快照,可以设置是否进行压缩存储。(LZF算法压缩,会消耗cpu)rdbchecksum yes       //是否使用CRC64算法来进行数据校验,会消耗一定的资源dbfilename dump.rdb   //文件名dir ./  				//路径(不带文件名)

AOF

appendonly no    				//是否打开 aof日志功能
no-appendfsync-on-rewrite yes 	//正在导出rdb快照的时候不要写aof
appendfsync	always				//设置 AOF 文件同步策略, always  / everysec  / no// always,默认,表示每个写命令都会立即被同步到磁盘,//everysec 每秒// no  并不主动触发将数据同步到磁盘。而是由操作系统决定何时将缓冲区中的数据刷新到磁盘。易丢失数据 
auto-aof-rewrite-percentage  100 // 设置 AOF 重写的触发百分比,默认为 100,表示当 AOF 文件大小超过上一次重写后大小的 100% 时触发重写。
auto-aof-rewrite-min-size  128MB  // 设置 AOF 重写的最小文件大小,默认为 64MB,只有当 AOF 文件大小超过该值时才会触发重写。

三、Redis 中键淘汰策略

maxmemory-policy:该参数用于设置键淘汰策略。可以使用以下值之一:

maxmemory-policy设置说明
maxmemory-policy volatile-lru已设置过期时间 的数据集中挑选 最近最少使用 的键进行淘汰。
maxmemory-policy volatile-ttl已设置过期时间 的数据集中挑选 剩余过期时间最短 的键进行淘汰。
maxmemory-policy volatile-random已设置过期时间 的数据集中 随机选择 键进行淘汰。
maxmemory-policy volatile-lfu已设置过期时间 的数据集中 选择最不经常使用 的键策略。
maxmemory-policy allkeys-lru所有数据集中 挑选 最近最少使用 的键进行淘汰。
maxmemory-policy allkeys-lfu所有数据集中 挑选 最不经常使用 的键策略淘汰。
maxmemory-policy allkeys-random所有数据集中 随机选择 键进行淘汰。
maxmemory-policy noeviction禁止淘汰 策略,当内存不足时,写入操作会报错。
maxmemory-policy allkeys-lfu|volatile-ttl组合策略: 首先按照 LFU 策略淘汰最不经常使用的所有键,然后再通过过期时间淘汰带有过期时间的键。
maxmemory-samples 10设置检查键的样本数量,默认值为 5。样本数量越多,淘汰策略的准确性越高。

注:

lru  最近最少使用
lfu  最不经常使用
random  随机选择
noeviction  禁止

相关文章:

redis 持久化 与 键淘汰策略

redis运维核心: aof日志(全持久化 增量) 、 rdb(半持久化/全量备份) 、 键淘汰策略 、 高可用 1、Redis是基于内存的,一旦Redis重启/退出/故障,内存的数据将会全部丢失。故而有了持久化。 2、持久化:将内存中的数据存于磁盘中&am…...

PyCharm新手入门指南

安装好Pycharm后,就可以开始编写第一个函数:Hello World啦~我们就先来学习一些基本的操作,主要包含新建Python文件,运行代码,查看结果等等。 文章主要包含五个部分: 一、界面介绍 主要分为菜单栏、项目目录…...

【图像去噪】基于混合自适应(EM 自适应)实现自适应图像去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

[保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

描述 对于一个不存在括号的表达式进行计算 输入描述: 存在多组数据,每组数据一行,表达式不存在空格 输出描述: 输出结果 示例1 输入: 6/233*4输出: 18思路: ①设立运算符和运算数两个…...

源码解析Collections.sort ——从一个逃过单测的 bug 说起

本文从一个小明写的bug 开始,讲bug的发现、排查定位,并由此展开对涉及的算法进行图解分析和源码分析。 事情挺曲折的,因为小明的代码是有单测的,让小明更加笃定自己写的没问题。所以在排查的时候,也经历了前世的500年…...

一周 AIGC 丨苹果下架多款 AIGC 应用,阿里云开源通义千问 70 亿参数模型

多个 AIGC 应用在苹果应用商店下架,包含数据采集和使用不够规范等问题。阿里云开源通义千问 70 亿参数模型,包括通用模型 Qwen-7 B 和对话模型 Qwen-7 B-Chat。腾讯混元大模型开始应用内测,内部多个业务线接入测试。百度智能云“千帆大模型平…...

tomcat虚拟主机配置演示

一.新建用于显示的index.jsp文件,写入内容 二.修改tomcat/apache-tomcat-8.5.70/conf/server.xml配置文件 匹配到Host那部分,按上面格式在后面添加自己的域名和文件目录信息 主要是修改name和docBase 保存退出重启tomcat,确保tomcat运行…...

Nacos基本应用

Nacos 基本应用 Nacos 提供了 SDK 和 OpenAPI 方式来完成服务注册与发现等操作,SDK 实际上是对于 http 请求的封装。 微服务架构的电子商务平台,其中包含订单服务、商品服务和用户服务。可以使用 Nacos 作为服务注册和发现的中心,以便各个微…...

UML的类图规则

public:号 private:-号 protected:#号类图多重关系: 泛化关系: 概念:也就是继承关系。表示方式:用带空心三角形的直线来表示。例子:动物和猫,人和老师关联关系: 概念:用于表示一类对…...

uniapp实现微信小程序长按二维码扫码加群或好友

<template><view><view class"tit">欢迎扫码加入</view><image show-menu-by-longpress"true" src"/static/img/qrcode/1.jpg" class"btn-icon" click"previewImage"></image></vie…...

轮转数组(每日一题)

“路虽远&#xff0c;行则将至” ❤️主页&#xff1a;小赛毛 ☕今日份刷题&#xff1a;轮转数组 题目链接&#xff1a;轮转数组 题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例1&#xff1a; 输入…...

jmeter使用步骤

jmeter 使用步骤 1&#xff0c;进入jmeter目录中的bin目录&#xff0c;双击jmeter.bat 打开 2&#xff0c;右键test plan 创建线程组 3&#xff0c;配置线程组参数 4&#xff0c;右键刚刚创建的线程组&#xff0c;创建请求&#xff0c;填写请求地址 5&#xff0c;需要携带to…...

Ts中泛型的理解与使用

一、什么是泛型 在定义函数&#xff0c;定义接口或定义class类的时候&#xff0c;不先规定其类型&#xff0c;在使用的时候进行定义类型。 二、使用 1、定义函数&#xff1a; // 函数类型 function AA<T>(arg:T):T{return arg } AA<number>(1) AA<string>…...

uniapp使用eatchs雷达图

引入插件 <template><view class"page"><view class"AllBox"><view class"topTit">标题</view><view class"leftTit">对比分析</view><view class"tableBox"><view cl…...

PostgreSQL jsonb

PostgreSQL jsonb jsonb 函数以及操作符 在PostgreSQL中&#xff0c;有许多用于处理JSONB数据类型的内置函数和操作符。下面列出了一些常用的JSONB函数和操作符&#xff1a; jsonb_pretty(jsonb) 该函数将JSONB数据格式化为易读的多行字符串。jsonb_typeof(jsonb) 该函数返回…...

Spring系列四:AOP切面编程

文章目录 &#x1f497;AOP-官方文档&#x1f35d;AOP 讲解&#x1f35d;AOP APIs &#x1f497;动态代理&#x1f35d;初始动态代理&#x1f35d;动态代理深入&#x1f35d;AOP问题提出&#x1f4d7;使用土方法解决&#x1f4d7; 对土方法解耦-开发最简单的AOP类&#x1f4d7;…...

VS+Qt+C++旅游景区地图导航源码实例

程序示例精选 VSQtC旅游景区地图导航 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC旅游景区地图导航>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。…...

回调函数和一般函数的区别

回调函数&#xff1a;不是我能控制的&#xff0c;通过外界信号触发调用&#xff0c;例如下面是chatter 一般函数&#xff1a;我能控制的&#xff0c;顺序调用...

使用vite创建Vue/React前端项目,配置@别名和Sass样式,又快又方便

Vite官方网站&#xff1a;Vite | 下一代的前端工具链 Vite 并不是基于 Webpack 的&#xff0c;它有自己的开发服务器&#xff0c;利用浏览器中的原生 ES 模块。这种架构使得 Vite 比 Webpack 的开发服务器快了好几个数量级。Vite 采用 Rollup 进行构建&#xff0c;速度也更快…...

从前序与中序遍历序列构造二叉树,从中序与后序遍历序列构造二叉树

目录 从前序与中序遍历序列构造二叉树从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树 题目链接 给定两个整数数组 preorder 和 inorder &#xff0c;其中 preorder 是二叉树的先序遍历&#xff0c; inorder 是同一棵树的中序遍历&#xff0c;请构造二叉树并返…...

【JS常见数据结构】

JS数据结构 前言数组JavaScript 中数组的常见操作&#xff1a;1. 创建数组&#xff1a;2. 访问数组元素&#xff1a;3. 插入元素&#xff1a;4. 删除元素&#xff1a;5. 查询元素&#xff1a; 链表单向链表双向链表循环链表 栈队列树二叉树示例 图图的定义图的分类图的表示方法…...

算法基础之插入排序

1、插入排序基本思想 插入排序的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place排序&#xff08;即只需用到O(1)的额外空间的排序&#xff09;&a…...

InfoQ 分享

...

Jupyter Notebook 遇上 NebulaGraph,可视化探索图数据库

在之前的《手把手教你用 NebulaGraph AI 全家桶跑图算法》中&#xff0c;除了介绍了 ngai 这个小工具之外&#xff0c;还提到了一件事有了 Jupyter Notebook 插件: https://github.com/wey-gu/ipython-ngql&#xff0c;可以更便捷地操作 NebulaGraph。 本文就手把手教你咋在 J…...

人类与机器的分类不同

分类能力也是智能的重要标识之一。通过分类&#xff0c;我们可以将事物或概念进行归类和组织&#xff0c;从而更好地理解和处理信息。分类在人类认知和智能发展中起到了重要的作用&#xff0c;它有助于我们对世界进行认知、记忆、推理和决策。在机器智能领域&#xff0c;分类同…...

WEB安全-SQL注入,CSRF跨站伪造,OXX跨站脚本

SQL 注入攻击 SQL 注入是一种网络攻击手段&#xff0c;攻击者通过在 Web 应用程序的输入字段中插入恶意 SQL 代码&#xff0c;试图访问、篡改或删除数据库中的数据。这种攻击通常发生在应用程序未对用户输入进行充分验证或过滤的情况下。 举个例子&#xff0c;例如&#xff0c;…...

【HDFS】客户端读某个块时,如何对块的各个副本进行网络距离排序?

本文包含如下内容: ① 通过图解+源码分析/A1/B1/node1和 /A1/B2/node2 这两个节点的网络距离怎么算出来的 ② 客户端读文件时,副本的优先级。(怎么排序的,排序规则都有哪些?) ③ 我们集群发现的一个问题。 客户端读时,通过调用getBlockLocations RPC 获取文件的各个块。…...

【数字化处理】仿生假体控制中肌电信号的数字化处理研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

谷歌推出Flax:JAX的神经网络库

在优化理论中&#xff0c;损失或成本函数测量拟合或预测值与实际值之间的距离。对于大多数机器学习模型&#xff0c;提高性能意味着最小化损失函数。 但对于深度神经网络&#xff0c;执行梯度下降以最小化每个参数的损失函数可能会消耗大量资源。传统方法包括手动推导和编码&a…...

PDF换行的难度,谁能解决?

换行的时候确认不了长度&#xff1a; import java.awt.*;public class Test {public static void main(String[] args) {String str1 "淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘淘";String str2 "AAAAAAAAAAAAAAAAAAAAAAAAA…...

山西建设官方网站/用网站模板建站

【问题】安装adobe flash player&#xff0c;总是提示关闭IE【解决】新建一个文本文档&#xff0c;输入以下内容regsvr32 /u /s %windir%\system32\Flash9b.ocxregsvr32 /u /s %windir%\system32\Flash9f.ocxregsvr32 /u /s %windir%\system32\Macromed\Flash\Flash8a.ocxregsv…...

wordpress 附件密码保护/电脑软件推广平台

一、动图演示 二、思路分析 1. 相邻两个数两两相比&#xff0c;n[i]跟n[j1]比&#xff0c;如果n[i]>n[j1]&#xff0c;则将连个数进行交换&#xff0c; 2. j, 重复以上步骤&#xff0c;第一趟结束后&#xff0c;最大数就会被确定在最后一位&#xff0c;这就是冒泡排序又称…...

谷歌上怎样做网站/郑州网站建设

thinkphp和wordpress区别ThinkPHPThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;诞生于2006年初&#xff0c;原名FCS&#xff0c;2007年元旦正式更名为ThinkPHP&#xff0c;遵循Apache2开源协议发布&#xff0c;从Struts结构移植过来并做了改进和完善&a…...

九曲网站建设/今日十大热点新闻事件

在APP中一些页面为了防止用户操作失误点击到返回键导致退出APP&#xff0c;可以设置其一定时间内点击两次返回键才允许退出APP&#xff0c;完成这个功能可以通过WillPopScope和SystemNavigator.pop实现 我们先来看一下效果&#xff1a; 要实现这个效果我们需要先在外层包裹Wil…...

成都免费招聘网站/常州百度搜索优化

,之前看<<PostgreSQL数据库内核分析>>这本书,提到了postmaster进程,于是在我安装的PG 9.6.0中,ps -ef了一把,结果没找到,如下:[postgresrhel73 global]$ pwd /usr/local/pgsql/data/global [postgresrhel73 global]$ ps -ef | grep -i post root 2220 1 …...

域名持有者个人可以做公司网站/口碑营销的特点

VMware Horizon View 从 6.2 开始支持链接克隆自动场。在此之前&#xff0c;用户只能创建手动场。有了这个功能&#xff0c;可以省去用户很多手动步骤&#xff0c;提高管理效率&#xff0c;节约时间成本。本博客演示创建链接克隆自动场的步骤。 一. 创建Windows 2008R2 SP1父虚…...