redis基础3——配置文件核心参数实测+RDB持久化、AOF持久化核心参数详解

news2024/11/25 16:46:02

文章目录

  • 一、redis.conf配置文件详解
    • 1.1 查看配置文件位置
    • 1.2 启动需指定配置文件
    • 1.3 单位大小写不敏感
    • 1.4 引用其他配置文件(包含)
      • 1.4.1 测试参数存放前后位置
        • 1.4.1.1 反例
        • 1.4.1.2 正例
      • 1.4.2 测试引用参数有效性
    • 1.5 网络相关
      • 1.5.1 绑定IP
      • 1.5.2 保护模式
      • 1.5.3 默认端口
    • 1.6 通用类
      • 1.6.1 守护进程(后台运行)
      • 1.6.2 pid文件
      • 1.6.3 日志文件
      • 1.6.4 数据库数量
      • 1.6.5 日志logo显示
    • 1.7 rdb持久化文件配置(快照模式)
      • 1.7.1 rdb持久化规则
      • 1.7.2 持久化错误时是否继续工作
      • 1.7.3 rdb文件压缩
      • 1.7.4 rdb文件校验
      • 1.7.5 文件名称
      • 1.7.6 持久化文件存放目录
    • 1.8 安全类
      • 1.8.1 设置密码
    • 1.9 限制类
      • 1.9.1 设置最大客户端连接数量
      • 1.9.2 设置最大内存
      • 1.9.3 内存达上限处理策略
    • 1.10 aof持久化文件配置(仅追加模式)
      • 1.10.1 开启与关闭
      • 1.10.2 文件名称
      • 1.10.3 aof持久化规则
    • 1.11 主从复制类
      • 1.11.1 连接master密码

一、redis.conf配置文件详解

1.1 查看配置文件位置

  • redis配置文件为redis.conf,位于redis安装目录下。
  • redis服务的启动也需要redis.conf配置文件的参与,可以从配置文件中获取多种功能用法。
  • 在接手一台未知服务器,需要寻找redis的二进制安装路径时,可以使用whereis命令来查询。若采用docker方式安装,可以直接docker ps -a查看是否有redis容器运行。

在这里插入图片描述

1.2 启动需指定配置文件

  • redis服务启动需要指定配置文件,读取配置文件里配置的各项参数。所以读取不同的参数效果不同。
  • 比如/usr/local/redis/redis.conf配置文件参数不动,我把该文件cp到/opt/redis/目录下,修改/opt/redis/redis.conf配置文件的参数(设置密码,默认没有密码),在启动redis服务时指定/opt/redis/redis.conf这个配置文件,那么在用客户端连接服务端时,需要输入密码。反之,指定用默认的配置文件启动服务,则不需要输入密码就可以连接服务端。

在这里插入图片描述

1.3 单位大小写不敏感

  • units(单位)。
  • 这里说明了在配置内存大小时,指定的单位可以是大写、小写。并且支持的度量单位为bytes,不支持bit

在这里插入图片描述

1.4 引用其他配置文件(包含)

  • includes(包含)
  • 这个参数的使用需要注意在配置文件里的位置,可以指定引用其他位置的配置文件。若被引用的配置文件里的参数与redis.conf里的参数有相同的,想要实现被引用配置文件里的参数则需要将include这一行放在redis.conf配置文件里同参数的后面,通俗得讲,就是读取redis.conf最后配置得值。
  • 若先读取redis默认得配置文件启动后,需要使用include引用其他配置文件里相同的参数,则需要重启生效。

在这里插入图片描述

1.4.1 测试参数存放前后位置

在redis.conf配置文件有一个“tcp-keepalive 300”的参数,我现在不需要使用默认配置文件的这个参数配置,要引用其他配置文件里的这个参数值,例如我要引用/opt/backup/baidu.conf这个配置文件里的“tcp-keepalive 1000”参数值,则在redis.conf里“include /opt/backup/baidu.conf”这一行要放在“tcp-keepalive 300”后面,不然读取的还是300默认值。

1.4.1.1 反例

1、测试文件/opt/backup/baimu.conf,指定参数值为1000。

在这里插入图片描述
2、指定测试文件,绝对路径。此时默认配置“tcp-keepalive 300”一行在include下面
在这里插入图片描述在这里插入图片描述
3、启动服务,查看结果

[root@localhost redis]# redis-server redis.conf 
[root@localhost redis]# redis-cli -a wuhan@123
127.0.0.1:6379> config get tcp-keepalive   #读取的还是默认配置300
1) "tcp-keepalive"
2) "300"

1.4.1.2 正例

4、此时我们把include一行放在“tcp-keepalive 300”后面。若之前退出没有shutdown,则需要重启服务才能生效。

在这里插入图片描述
5、重启服务,查看结果

[root@localhost redis]# redis-cli -a wuhan@123 shutdown
[root@localhost redis]# redis-server redis.conf 
[root@localhost redis]# redis-cli -a wuhan@123
127.0.0.1:6379> config get tcp-keepalive   #此时读取的是我们指定的配置文件参数1000。
1) "tcp-keepalive"
2) "1000"

1.4.2 测试引用参数有效性

被引用的配置文件里的参数不能随便命名,需能被redis读取使用。

1、之前我们的redis密码为wuhan@123,现在我们把redis.conf配置文件的密码配置一行注释掉,用include参数引用,应用/opt/qingjun.conf文件里的123456。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
2、此时我们连接redis时,wuhan@123密码连接失败,123456可以连接成功。
在这里插入图片描述

1.5 网络相关

1.5.1 绑定IP

  • bind 127.0.0.1 默认绑定的是本机,外部连接不了。
  • 若外部要连接服务端,可以用通配符*,bind *

在这里插入图片描述

1.5.2 保护模式

protected-mode ,默认是开启状态,一般不需要修改,可以保证服务的安全性。

在这里插入图片描述

1.5.3 默认端口

port ,默认端口是6379。

在这里插入图片描述

在这里插入图片描述

1.6 通用类

1.6.1 守护进程(后台运行)

daemonize ,默认是no,为前台运行。终止会话,则服务停止运行。

在这里插入图片描述

  • 后台运行

在这里插入图片描述

  • 前台运行

在这里插入图片描述

1.6.2 pid文件

pidfile ,记录的是redis后台运行时生成的pid文件,里面只有一行,为redis进程ID。前台运行不产生该文件。

在这里插入图片描述

1.6.3 日志文件

logfile,默认为空,则将日志打印在屏幕上,不输出成文件。也可以指定文件位置,这样服务运行时智慧把日志输入到指定文件里。

  • 指定日志文件

在这里插入图片描述
在这里插入图片描述

  • 默认为空,不指定日志文件。

在这里插入图片描述

在这里插入图片描述

1.6.4 数据库数量

databases ,默认是16个,从第0个开始数起。

在这里插入图片描述
在这里插入图片描述

1.6.5 日志logo显示

always-show-logo,服务启动时显示logo。

  • 默认是开启状态,通常不用更改。
  • 若是前台运行,这个参数不管用,即使关闭,服务前台运行时也会打印LOGO。
  • 开启,日志有LOGO输出。

在这里插入图片描述

在这里插入图片描述

  • 关闭,日志不显示LOGO。

在这里插入图片描述

在这里插入图片描述

1.7 rdb持久化文件配置(快照模式)

1.7.1 rdb持久化规则

  • save 900 1:表示900秒(15分钟)内,至少有1个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在磁盘。
  • save 300 10:表示300秒(5分钟)内,至少有10个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在磁盘。
  • save 60 10000:表示60秒(1分钟)内,至少有10000个key值发生改变(写操作,包括新增、修改和删除操作),则会触发bgsave,将内存中的数据以快照的方式写入到二进制文件中,保存在磁盘。

在这里插入图片描述

1.7.2 持久化错误时是否继续工作

stop-writes-on-bgsave-error,默认为yes,开启状态。

在这里插入图片描述

1.7.3 rdb文件压缩

rdbcompression,默认为yes,开启文件压缩redis会采用采用 LZF(压缩算法) 压缩,会消耗一定的CPU资源。若不开启,则会占用更多的磁盘空间。

在这里插入图片描述

1.7.4 rdb文件校验

rdbchecksum,默认yes开启状态,会校验rdb文件是否有损坏,会有大概10%的性能损耗。

在这里插入图片描述

1.7.5 文件名称

dbfilename,可以指定命名rdb文件的名称,默认为dump.rdb。

在这里插入图片描述

1.7.6 持久化文件存放目录

dir,默认存放当前目录,也就是redis.conf文件所在的同级目录。

在这里插入图片描述

1.8 安全类

1.8.1 设置密码

requirepass,默认为空没有密码。设置密码可以一定程度地保证生成环境的安全性。

在这里插入图片描述

  • 用命令设置密码不会更改配置文件里的配置,但重启服务会失效。

在这里插入图片描述

1.9 限制类

1.9.1 设置最大客户端连接数量

maxclients,默认关闭状态,可以设置客户端地最大连接数,超过这个数值地第n+1个用户开始就连接不了服务端。

在这里插入图片描述

1.9.2 设置最大内存

maxmemory,默认没有设置,项目上一定要设置最大限制内存,不然会存在数据丢失地情况。

在这里插入图片描述

1.9.3 内存达上限处理策略

maxmemory policy,当使用内存超过上限的处理方式。

  • volatile-lru:利用 LRU 算法移除设置过过期时间的 key。
  • volatile-lfu :使用近似的LFU移除有过期设置的键。
  • volatile-random:随机移除设置过过期时间的 key。
  • allkeys-lfu:使用近似的LFU移除任何key。
  • volatile-ttl:移除即将过期的 key,根据最近过期时间来删除(辅以 TTL)
  • allkeys-lru:利用 LRU 算法移除任何 key。
  • allkeys-random:随机移除任何 key。
  • noeviction:不移除任何 key,只是返回一个写错误。

在这里插入图片描述

1.10 aof持久化文件配置(仅追加模式)

1.10.1 开启与关闭

appendonly,是否以appendonly模式作为持久化方式,默认使用的是rdb方式持久化,所以appendonly模式默认也是关闭状态。

在这里插入图片描述

1.10.2 文件名称

appendfilename,可以对aof持久化文件进行命名。

在这里插入图片描述

1.10.3 aof持久化规则

  • appendfsync always:每写入一个命令,就调用一次 fsync 函数,将缓冲区里面的命令写入到硬盘。这种模式下,服务器出现故障,也不会丢失任何已经成功执行的命令数据,但是其执行速度较慢;
  • appendfsync everysec(默认):每一秒调用一次 fsync 函数,将缓冲区里面的命令写入到硬盘。这种模式下,服务器出现故障,最多只丢失一秒钟内的执行的命令数据,通常都使用它作为 AOF 配置策略;
  • appendfsync no:不主动调用 fsync 函数,因为Linux 系统的 fsync() 函数可以将指定文件的内容从内核缓存刷到硬盘中,所以这种由操作系统决定何时将缓存区里面的命令写入到硬盘的方式及其不安全。这种模式下,服务器遭遇意外停机时,丢失命令的数量是不确定的,所以这种策略,不确定性较大。

在这里插入图片描述

1.11 主从复制类

1.11.1 连接master密码

masterauth,当redis主机设置了redis密码时,redis从机连接master的密码。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/52942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全球领先飞瞳引擎™云服务全球两千+企业用户,集装箱识别集装箱箱况残损检测,正常箱号识别率99.98%以上,箱信息识别及铅封识别免费

全球领先飞瞳引擎™AI集装箱识别检测云服务全球两千企业用户,集装箱识别集装箱箱况残损检测,正常箱号识别率99.98%以上,箱信息识别及铅封识别免费。CIMCAI中集飞瞳是全球应用落地最广,规模最大,最先进的的港航人工智能…

链游新发展方向:告别高强度打金,回归游戏本质

2022 年伊始,加密领域最瞩目的项目要属区块链游戏了。随着 Axie Infinity、Genopets 和 Perion 等公司大获成功,区块链游戏生态系统逐渐进入主流圈。值得一提的是,游戏和 NFT 这两个备受关注的类别在 Web 3 世界中互相成就,创造出…

【简单总结】SLAM 算法的 Benchmark 及相关数据集的结果对比

前言与参考 主要是copy一下总结,方便自己后续找方案特定使用,所有的出处均在标题处和原链接跳转,此处仅做各个benchmark收集使用,如果有原作者觉得侵权,请联系我 将全力配合相关内容和链接删除 如果网友有其他更新的…

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费

代码随想录刷题day51 309.最佳买卖股票时机含冷冻期;714.买卖股票的最佳时机含手续费 股票买卖,前两天的有点忘了正好也复习一下。 309.最佳买卖股票时机含冷冻期 309. 最佳买卖股票时机含冷冻期 - 力扣(Leetcode) 不是很好优…

Java---SpringBoot---SpringBoot

SpringBoot1,SpringBoot简介1.1 SpringBoot快速入门1.1.1 开发步骤1.1.1.1 创建新模块1.1.1.2 创建 Controller1.1.1.3 启动服务器1.1.1.4 进行测试1.1.2 对比1.1.3 官网构建工程1.1.3.1 进入SpringBoot官网1.1.3.2 选择依赖1.1.3.3 生成工程1.1.4 SpringBoot工程快…

尚医通-预约下单中rabbitmq的使用

需求描述 在挂号界面选择完需要挂号的医生和排版后,添加就诊人,确认挂号 附上业务流程图 技术分析 我们今天主要来看看这块 mq 的运用,也是一个思考,我还是挑着重要的来讲,这里讲讲我们这里怎么使用 mq 的 这里会用…

关于λ-optimal的初始化解算法在(元)启发式中的应用

关于λ-optimal算法在启发式中初始化解的应用TSP问题介绍λ-optimal定理与定义算法描述与伪代码算法的优化参考文献这里讨论组合优化中初始解的生成问题。组合优化问题,很多情况下,解的生成是随机的或者是采用某种直观上满足题意的初始化方法&#xff0c…

12月1日(第三天)

四舍五入 Math.round()整形 字符串输出字符串,加字符则输出整形if else if,是互斥关系,同时满足条件,只会被执行前面那个,if if,是并列的关系,条件满足都会执行ORACLE中的操作(来自…

使用SpringBoot将图片上传至阿里云OSS

一. 对象存储OSS 1. 什么是OSS? 官方的解释是这样的:阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。 官网…

我开发的开源项目,让.NET7中的EFCore更轻松地使用强类型Id

在领域驱动设计(DDD)中,有一个非常重要的概念:“强类型Id”。使用强类型Id来做标识属性的类型会比用int、Guid等通用类型能带来更多的好处。比如有一个根据根据Id删除用户的方法的签名如下: void RemoveById(long id)…

【毕业设计】9-基于STM32无刷直流电机控制器的设计仿真与实现(原理图+源码+仿真工程+论文+PPT+参考英文文献)

毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现(原理图源码仿真工程论文PPT参考英文文献) 文章目录毕业设计】基于STM32无刷直流电机控制器的设计仿真与实现(原理图源码仿真工程论文PPT参考英文文献)任务书设计说明书摘要…

能迪科技智能控制系统对中央空调进行精准、单独调控医院案例

案例背景​ 梅州市妇女儿童医院新院区(以下简称“新院区”)是省、市重点项目工程,建设地点位于江南新城客都大道北侧,一期项目总投资4.8亿元,占地面积50亩,总建筑面积87000平方米,按照三级妇幼保…

blender cycles引擎

文章目录简介属性一 Scene采样二 光程最多反弹次数钳制焦散快速GI近似三 体积步进速率四 曲线简介 1 cycles与EV的区别在于cy是传统渲染引擎,效果好,速度慢,ev是实时引擎,速度快,效果差 2 切换渲染引擎,属…

基于51单片机智能IC卡水表控制系统(仿真+源程序+全套资料)

资料编号:200 功能介绍: 采用51单片机作为主控CPU,使用按键进行模拟冲卡(模拟缴费冲卡),通过按键来控制当前是否使用自来水,并且LCD1602实时显示当前自来水可用量剩余多少,当自来水…

GhMYB7促进棉纤维中次生壁纤维素的积累

文章信息 题目:GhMYB7 promotes secondary wall cellulose deposition in cotton fibres by regulating GhCesA gene expression through three distinct cis-elements 刊名:New Phytologist 作者:Junfeng Huang,Wenliang Xu e…

图文详解Linux基础经典教程(10)——阿里云安装开发工具

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 概述 之前,我们已经介绍在本地CentOS上安装JDK、Tomcat、MySQL等开发工具。接下来,我们介绍在阿里云安装这些开发工具。 购买阿里云 请在阿里云 h…

自然语言处理NLP——ERNIE-M:基于回译机制的“预训练-微调”多语言模型

目录 系列文章目录 一、背景介绍 1.多语言任务 1.1 多语言任务定义 1.2 多语言任务难题 2.多语言模型 2.1 多语言模型定义与原理 2.2 多语言模型困难 3.论文简介 3.1 背景与开发动机 3.2 论文梗概 3.3 论文贡献与成就 二、相关工作 1.预训练方法 1.1 预训练方法…

Postman之Newman命令行运行脚本生成HTML报告

目录 一、Newman的下载安装 二、Newman生成Html报告 三、执行脚本准备 3.1.导出项目集脚本 3.2.导出环境变量 3.3.导出全局变量 3.4.data数据驱动文件 3.5.文件存储 四、Newman运行命令简介 4.1.运行命令:newman run 4.2.常用参数: 4.3.执行…

【SSM框架】依赖注入

🍓个人主页:个人主页 🍒系列专栏:SSM框架 目录 1.依赖注入之setter注入 2.依赖注入之构造器注入 3.特殊值处理 4.为类类型属性赋值 5.为数组类型属性赋值 1.依赖注入之setter注入 ①创建学生类Student package com.atguigu.s…

09【SpringMVC的Json支持】

文章目录三、Json的支持3.1 响应json3.1.1 ResponseBody3.1.2 JsonIgnore3.1.3 JsonFormat3.1.4 ResponseEntity3.1.5 作用在类上3.1.6 RestController3.2 请求Json3.2.1 RequestBody3.2.2 HttpEntity3.2.3 封装Json数据三、Json的支持 SpringMVC支持自动将JSON转换成Java对象…