Redis 篇
一、数据结构
二、持久化方式
Redis 提供了两种主要的持久化方式,分别是 RDB(Redis Database)和 AOF(Append Only File),此外,还可以同时使用这两种方式以增强数据安全性,以下为你详细介绍:
RDB(Redis Database)
原理
RDB 持久化是将 Redis 在某个时间点上的内存数据快照保存到磁盘上的一个二进制文件(.rdb 文件)。Redis 可以通过手动触发或者根据配置的规则自动触发 RDB 快照的生成。在 Redis 重启时,会读取这个 RDB 文件,将数据恢复到内存中。
触发方式
- 手动触发
SAVE命令:会阻塞 Redis 服务器进程,直到 RDB 文件创建完毕,在此期间,服务器不能处理任何客户端请求。BGSAVE命令:会派生出一个子进程来创建 RDB 文件,主进程可以继续处理客户端请求。子进程创建 RDB 文件完成后会向主进程发送信号。
- 自动触发
可以在redis.conf配置文件中设置自动触发的规则,例如:
save 900 1
save 300 10
save 60 10000
上述配置表示:在 900 秒内如果有 1 个 key 发生变化,或者 300 秒内有 10 个 key 发生变化,又或者 60 秒内有 10000 个 key 发生变化,就会自动触发 BGSAVE 操作。
优点
- 文件紧凑:RDB 文件是经过压缩的二进制文件,占用磁盘空间较小,便于备份和传输。
- 恢复速度快:加载 RDB 文件恢复数据时,只需将文件内容加载到内存,相比 AOF 方式恢复速度更快。
- 性能影响小:使用 BGSAVE 时,主进程可以继续处理客户端请求,对 Redis 性能影响较小。
缺点
- 数据丢失风险:由于是按一定时间间隔进行快照,两次快照之间若 Redis 发生故障,可能会丢失这段时间内的数据。
- 生成快照时的性能开销:fork 子进程会消耗系统资源,对于大型数据集,可能导致短暂性能下降。
AOF(Append Only File)
原理
AOF 持久化是将 Redis 执行的每一条写命令追加到 AOF 文件的末尾。当 Redis 重启时,会重新执行 AOF 文件中的所有命令来恢复数据。
配置方式
在 redis.conf 中通过 appendonly 参数开启 AOF 持久化:
appendonly yes
同时,可以通过 appendfsync 参数配置 AOF 文件的同步策略:
always:每次写操作都同步到磁盘,数据安全性最高,但会影响性能。everysec:每秒同步一次,是一种兼顾性能和数据安全性的策略。no:由操作系统决定何时同步,性能最好,但数据安全性最低。
优点
- 数据安全性高:可以最大程度保证数据完整性,即使 Redis 发生故障,最多丢失最近一次同步的数据。
- 可读性强:AOF 文件是文本文件,记录的是 Redis 执行的写命令,便于查看和分析。
缺点
- 文件体积大:随着写操作增加,AOF 文件会不断增大,占用较多磁盘空间。
- 恢复速度慢:重启时需要重新执行 AOF 文件中的所有命令,恢复时间可能较长。
- 性能影响:
always同步策略会对 Redis 性能产生一定影响。
混合持久化(RDB + AOF)
从 Redis 4.0 开始支持混合持久化方式。将 RDB 的文件格式和 AOF 的持久化策略结合起来。在 AOF 重写时,将内存中的数据以 RDB 的形式写入 AOF 文件的开头,之后的写操作再以 AOF 的方式追加到文件末尾。这样既保证了数据恢复速度(利用 RDB 部分),又提高了数据安全性(利用 AOF 部分记录后续操作)。
在 redis.conf 中通过以下配置开启混合持久化:
aof-use-rdb-preamble yes
三、常用指令
-
全表查询:keys
-
分页查询:
-
游标查询:
四、优化方式
相关文章:
Redis 篇
一、数据结构 二、持久化方式 Redis 提供了两种主要的持久化方式,分别是 RDB(Redis Database)和 AOF(Append Only File),此外,还可以同时使用这两种方式以增强数据安全性,以下为你…...
React + TypeScript 实战指南:用类型守护你的组件
TypeScript 为 React 开发带来了强大的类型安全保障,这里解析常见的一些TS写法: 一、组件基础类型 1. 函数组件定义 // 显式声明 Props 类型并标注返回值 interface WelcomeProps {name: string;age?: number; // 可选属性 }const Welcome: React.FC…...
从零开始:Linux环境下如何制作静态库与动态库
个人主页:chian-ocean 文章专栏-Linux 前言 动静态库是编程中两种主要的库类型,它们用于帮助开发者复用已有的代码,而不需要每次都从头开始编写。它们的主要区别在于链接和加载的时机、方式以及使用场景 库 库就是一些已经写好并且经过测试…...
【智能体Agent】ReAct智能体的实现思路和关键技术
基于ReAct(Reasoning Acting)框架的自主智能体 import re from typing import List, Tuplefrom langchain_community.chat_message_histories.in_memory import ChatMessageHistory from langchain_core.language_models.chat_models import BaseChatM…...
Java进阶:Zookeeper相关笔记
概要总结: ●Zookeeper是一个开源的分布式协调服务,需要下载并部署在服务器上(使用cmd启动,windows与linux都可用)。 ●zookeeper一般用来实现诸如数据订阅/发布、负载均衡、命名服务、集群管理、分布式锁和分布式队列等功能。 ●有多台服…...
QT-绘画事件
实现颜色的随时调整,追加橡皮擦功能 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QColor> #include <QPoint> #include <QVector> #include <QMouseEvent> #include <QPainter> #include <Q…...
鸿蒙NEXT开发-端云一体化开发
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 目录 端云一体化开发基本概念 传统架构 端云一…...
大模型——股票分析AI工具开发教程
大模型——股票分析AI工具开发教程 在本教程中,我们将利用Google Gemini 2.0 Flash模型创建一个简单但有效的股票分析器。 你是否曾被大量的股票市场数据所淹没?希望有一个私人助理来筛选噪音并为您提供清晰、可操作的见解?好吧,你可以自己构建一个,而且由于 Python 的强…...
nexus 实现https 私有镜像搭建
1、安装nexus 1.1 安装JDK17 rpm -ivh jdk-17.0.13_linux-x64_bin.rpm 1.2 下载安装包解压到指定目录 tar zxvf nexus-3.77.2-02-unix.tar.gz -C /usr/local 2、运行nexus 默认8081端口 cd /usr/local/nexus-3.77.2-02 && bin/nexus start 3、配置nexus私有docker 镜…...
颈椎X光数据集(cervical spine X-ray dataset)
颈椎X光数据集(cervical spine X-ray dataset) 一.颈椎X光(1248张原始图像,无处理,jpg格式) 二.颈椎X光(1000张原始图像,无处理,jpg格式) 此数据…...
(动态规划 完全背包 零钱兑换)leetcode 322
本题为完全背包 与01背包的区别是 物品可以任意取 而01背包只能取一次 这就导致了状态转移方程的不同 1.当放不下:的时候 转移方程是一样的 取0到i-1 物品,背包容量为j的最优值 else 2.放得下:就是取 0到i-1 物品,背包容量为j的最优值和 “0到i的[j-w[i]]v…...
【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解
目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…...
Pytorch的一小步,昇腾芯片的一大步
Pytorch的一小步,昇腾芯片的一大步 相信在AI圈的人多多少少都看到了最近的信息:PyTorch最新2.1版本宣布支持华为昇腾芯片! 1、 发生了什么事儿? 在2023年10月4日PyTorch 2.1版本的发布博客上,PyTorch介绍的beta版本…...
rabbitmq-amqp事务消息+消费失败重试机制+prefetch限流
1. 安装和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…...
【HarmonyOS Next】自定义Tabs
背景 项目中Tabs的使用可以说是特别的频繁,但是官方提供的Tabs使用起来,存在tab选项卡切换动画滞后的问题。 原始动画无法满足产品的UI需求,因此,这篇文章将实现下面页面滑动,tab选项卡实时滑动的动画效果。 实现逻…...
Sass 模块化革命:深入解析 @use 语法,打造高效 CSS 架构
文章目录 前言use 用法1. 模块化与命名空间2. use 中 as 语法的使用3. as * 语法的使用4. 私有成员的访问5. use 中with默认值6. use 导入问题总结下一篇预告: 前言 在上一篇中,我们深入探讨了 Sass 中 import 语法的局限性,正是因为这些问题…...
【渗透测试】反弹 Shell 技术详解(一)
反弹 Shell 技术详解 一、前置知识 反弹 shell(Reverse Shell)是一种技术,攻击者利用它可以在远程主机上获得一个交互式的命令行接口。通常情况下,反弹 shell 会将标准输入(stdin)、标准输出(…...
python:pymunk + pygame 模拟六边形中小球弹跳运动
向 chat.deepseek.com 提问:编写 python 程序,用 pymunk, 有一个正六边形,围绕中心点缓慢旋转,六边形内有一个小球,六边形的6条边作为墙壁,小球受重力和摩擦力、弹力影响,模拟小球弹跳运动&…...
Windows 图形显示驱动开发-WDDM 3.2-本机 GPU 围栏对象(二)
GPU 和 CPU 之间的同步 CPU 必须执行 MonitoredValue 的更新,并读取 CurrentValue,以确保不会丢失正在进行的信号中断通知。 当向系统中添加新的 CPU 等待程序时,或者如果现有的 CPU 等待程序失效时,OS 必须修改受监视的值。OS …...
23种设计模式之《模板方法模式(Template Method)》在c#中的应用及理解
程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式࿰…...
内核漏洞利用入门:从用户态到内核态的完整提权链分析
1. 项目概述:从一道题看内核漏洞利用的基石最近在整理资料时,翻到了一个非常经典的入门级内核pwn题目。说它“十分基础”,是因为它几乎涵盖了从用户态程序漏洞利用转向内核态漏洞利用时,所有必须跨越的第一个门槛。对于习惯了栈溢…...
HPM6750 BGA196封装XPI0 CA端口缺失的CB端口启动解决方案
1. 项目概述与核心挑战最近在做一个对PCB尺寸有严格限制的嵌入式项目,主控芯片选用了先楫半导体的高性能MCU HPM6750。为了压缩板子面积,我放弃了引脚更丰富的BGA289封装(HPM6750IVM2),转而选择了更紧凑的BGA196封装&a…...
MAA明日方舟助手:5步配置实现游戏日常全自动化
MAA明日方舟助手:5步配置实现游戏日常全自动化 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.co…...
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan集成步骤解析
2026年腾讯云OpenClaw/Hermes Agent配置Token Plan集成步骤解析。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流 AI 工具&…...
别再死记硬背!用Python+Verilog双视角图解2ASK/2FSK调制解调原理
PythonVerilog双视角图解2ASK/2FSK调制解调原理 通信工程的学习者常常陷入理论公式与硬件实现之间的认知断层。当教科书上的数学表达式突然变成硬件描述语言时,那种手足无措的感觉我深有体会——三年前第一次接触Verilog实现调制解调时,盯着代码里那些分…...
1951-2025年中国1km月平均气温逐年年内季节波动幅度数据集
中国1000米分辨率月平均气温数据集(1951-2025)提供了长时间序列、规则网格的气象背景信息,为开展气候变化分析和区域比较研究提供了基础数据支撑。针对原始月尺度序列直接使用不够便捷的问题,需要进一步形成具有明确主题和统一格式…...
HS2-HF_Patch汉化补丁:3分钟打造完美中文游戏体验
HS2-HF_Patch汉化补丁:3分钟打造完美中文游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2的日文界面而烦恼吗…...
为什么你的Perplexity图标总返回404?深度逆向其图标CDN路由算法(附Python自动化探测脚本)
更多请点击: https://intelliparadigm.com 第一章:Perplexity图标资源搜索 Perplexity AI 官方未提供公开的图标资源包(如 SVG、Favicon 或 App Icon 套件),但开发者可通过合法合规方式获取其品牌视觉资产用于技术文档…...
从‘硬连接’到‘软融合’:拆解U-Net++中那些被重新设计的跳跃连接(Skip Connections)
从‘硬连接’到‘软融合’:拆解U-Net中那些被重新设计的跳跃连接 在医学图像分割领域,U-Net架构因其对称的编码器-解码器结构和跳跃连接设计,成为众多研究的基础框架。然而,当我们面对脑肿瘤、肺结节等尺寸差异显著的病灶时&#…...
【AI编程生产力跃迁】:用Perplexity秒级获取可运行代码示例的6大权威提示工程模板
更多请点击: https://codechina.net 第一章:Perplexity代码示例查询的核心机制与能力边界 Perplexity 在处理代码示例查询时,并非依赖静态模板匹配,而是通过多阶段语义理解与上下文感知检索协同实现:首先对用户自然语…...
