Redis之 redis.config配置文件
文章目录
- 前言
- 一、基本配置
- 1.单位
- 2.包含
- 3.网络配置
- 4.通用
- 5.快照
- 6.安全
- 7.限制
- 8.仅追加模式
- 二、总体主要介绍
- 总结
前言
行家一出手,就知有没有,让一起学习redis.config配置文件。
一、基本配置
Redis 的配置文件位于 Redis 安装目录下,文件名为
redis.conf
在 Linux 中,可以使用whereis redis
查找 Redis 的安装目录(我的文件夹我命名的是redis-7.2.1)
root@dragon:/home/wang# whereis redis-7.2.1
redis-7.2: /usr/local/redis-7.2.1
root@dragon:/home/wang# cd /usr/local/redis-7.2.1/
root@dragon:/usr/local/redis-7.2.1# ls
00-RELEASENOTES CODE_OF_CONDUCT.md COPYING dump.rdb Makefile README.md runtest runtest-moduleapi SECURITY.md src TLS.md
BUGS CONTRIBUTING.md deps INSTALL MANIFESTO redis.conf runtest-cluster runtest-sentinel sentinel.conf tests utils
命令行查看所有配置
127.0.0.1:6379> config get *
1.单位
Units
开头定义了一些基本的度量单位,只支持 bytes,不支持 bit。
这些单位对大小写是不敏感的。
# Redis configuration file example.
#
# Note that in order to read the configuration file, Redis must be
# started with the file path as first argument:
#
# ./redis-server /path/to/redis.conf# Note on units: when memory size is needed, it is possible to specify
# it in the usual form of 1k 5GB 4M and so forth:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# units are case insensitive so 1GB 1Gb 1gB are all the same.
2.包含
INCLUDES
和 Spring 配置文件类似,可以通过 include 包含,redis.conf 可以作为总文件,可以包含其他文件。
################################## INCLUDES #################################### Include one or more other config files here. This is useful if you
# have a standard template that goes to all Redis servers but also need
# to customize a few per-server settings. Include files can include
# other files, so use this wisely.
#
# Note that option "include" won't be rewritten by command "CONFIG REWRITE"
# from admin or Redis Sentinel. Since Redis always uses the last processed
# line as value of a configuration directive, you'd better put includes
# at the beginning of this file to avoid overwriting config change at runtime.
#
# If instead you are interested in using includes to override configuration
# options, it is better to use include as the last line.
#
# Included paths may contain wildcards. All files matching the wildcards will
# be included in alphabetical order.
# Note that if an include path contains a wildcards but no files match it when
# the server is started, the include statement will be ignored and no error will
# be emitted. It is safe, therefore, to include wildcard files from empty
# directories.
#
# include /path/to/local.conf
# include /path/to/other.conf
# include /path/to/fragments/*.conf
#
3.网络配置
NETWWORK
# 绑定的 IP
bind 127.0.0.1
# 保护模式
protected-mode yes
# 默认端口
port 6379
4.通用
GENERAL
# 默认情况下,Redis 不作为守护进程运行。需要开启的话,改为 yes
daemonize yes
# 可通过 upstart 和 systemd 管理 Redis 守护进程
supervised no
# 以后台进程方式运行 redis,则需要指定 pid 文件
pidfile /var/run/redis_6379.pid
# 日志级别。可选项有:
# debug(记录大量日志信息,适用于开发、测试阶段);
# verbose(较多日志信息);
# notice(适量日志信息,使用于生产环境);
# warning(仅有部分重要、关键信息才会被记录)。
loglevel notice
# 日志文件的位置,当指定为空字符串时,为标准输出
logfile ""
# 设置数据库的数目。默认的数据库是 0
databases 16
# 是否总是显示 logo
always-show-logo yes
5.快照
SNAPSHOPTING
持久化:在规定时间内执行多少次操作,则会持久化到rdb、aof文件
redis是内存数据库,如果没有持久化,那么数据断电即失
# 900秒(15分钟)内至少 1 个 key 值改变(则进行数据库保存--持久化)
save 900 1
# 300秒(5分钟)内至少 10 个 key 值改变(则进行数据库保存--持久化)
save 300 10
# 60秒(1分钟)内至少 10000 个 key 值改变(则进行数据库保存--持久化)
save 60 10000
# 持久化出现错误后,是否依然进行继续进行工作
stop-writes-on-bgsave-error yes
# 使用压缩 rdb 文件 yes:压缩,但是需要一些 cpu 的消耗;no:不压缩,需要更多的磁盘空间
rdbcompression yes
# 是否校验 rdb 文件,更有利于文件的容错性,但是在保存 rdb 文件的时候,会有大概 10% 的性能损耗
rdbchecksum yes
# dbfilenamerdb 文件名称
dbfilename dump.rdb
# dir 数据目录,数据库的写入会在这个目录。rdb、aof 文件也会写在这个目录
dir ./
6.安全
SECURITY
访问密码的查看、 设置和取消。
# 获取密码
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
# 设置密码
127.0.0.1:6379> config set requirepass "123456"
OK
# 重新连接
[root@sail redis]# redis-cli
# 发现使用不了了
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.
# 验证
127.0.0.1:6379> auth 123456
OK
# 验证后可以正常使用了
127.0.0.1:6379> ping
PONG
7.限制
MEMORY
# 设置能连上 redis 的最大客户端连接数量
maxclients 10000
# redis 配置的最大内存容量
maxmemory <bytes>
# maxmemory-policy 内存达到上限的处理策略:
# volatile-lru:利用 LRU 算法移除设置过过期时间的 key。
# volatile-random:随机移除设置过过期时间的 key。
# volatile-ttl:移除即将过期的 key,根据最近过期时间来删除(辅以 TTL)
# allkeys-lru:利用 LRU 算法移除任何 key。
# allkeys-random:随机移除任何 key。
# noeviction:不移除任何 key,只是返回一个写错误。
maxmemory-policy noeviction
8.仅追加模式
APPEND ONLY MODE
# 是否以 append only 模式作为持久化方式,默认不开启aof模式,默认使用的是 rdb 方式持久化,这种方式在许多应用中已经足够用了
appendonly no
# appendfilename AOF 持久化的文件的名称
appendfilename "appendonly.aof"
# appendfsync aof 持久化策略的配置:
# no:不执行sync,由操作系统保证数据同步到磁盘(这时候操作系统自己同步数据),速度最快。
# always:每次修改都执行sync,以保证数据同步到磁盘,消耗性能。
# everysec:每秒执行一次sync,可能会导致丢失这1s数据。
appendfsync everysec
二、总体主要介绍
daemonize no
Redis 默认不是以守护进程的方式运行,可以通过该配置项修改,使用 yes 启用守护进程。
pidfile /var/run/redis.pid
当 Redis 以守护进程方式运行时,Redis 默认会把 pid 写入 /var/run/redis.pid 文件,可以通过 pidfile 指定。
port 6379
指定 Redis 监听端口,默认端口为 6379。
为什么选用 6379 作为默认端口,因为 6379 在手机按键上 MERZ 对应的号码,而 MERZ 取自意大利歌女 Alessia Merz 的名字。
bind 127.0.0.1
绑定的主机地址。
timeout 300
当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能。
loglevel verbose
指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为 verbose。
- debug:记录大量日志信息,适用于开发、测试阶段
- verbose:较多日志信息
- notice:适量日志信息,使用于生产环境
- warning:仅有部分重要、关键信息才会被记录
logfile stdout
日志记录方式,默认为标准输出,如果配置 Redis 为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给 /dev/null。
databases 16
设置数据库的数量,默认数据库为 0,可以使用 SELECT 命令在连接上指定数据库 id。
save 900 1
save 300 10
save 60 10000
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合。
Redis 默认配置文件中提供了三个条件:
- 900 秒(15 分钟)内有 1 个更改
- 300 秒(5 分钟)内有 10 个更改
- 60 秒(1 分钟)内有 10000 个更改
rdbcompression yes
指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilename dump.rdb
指定本地数据库文件名,默认值为 dump.rdb。
dir ./
指定本地数据库存放目录。
slaveof
设置当本机为 slav 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步。
masterauth
当 master 服务设置了密码保护时,slav 服务连接 master 的密码。
requirepass foobared
设置Redis连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 auth 命令提供密码,默认关闭。
maxclients 128
设置同一时间最大客户端连接数,默认无限制。
Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数。
如果设置 maxclients 0,表示不作限制。
当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemory
指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中。
达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key。
当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。
appendonly no
指定是否在每次更新操作后进行日志记录,Redis 在默认情况下是异步的把数据写入磁盘。
如果不开启,可能会在断电时导致一段时间内的数据丢失。
因为 redis 本身同步数据文件是按上面 save 条件来同步的,所以有的数据会在一段时间内只存在于内存中。
默认为 no。
appendfilename appendonly.aof
指定更新日志文件名,默认为 appendonly.aof。
appendfsync everysec
指定更新日志条件,共有 3 个可选值:
- no:表示等操作系统进行数据缓存同步到磁盘(快)
- always:表示每次更新操作后手动调用 fsync() 将数据写到磁盘(慢,安全)
- everysec:表示每秒同步一次(折衷,默认值)
vm-enabled no
指定是否启用虚拟内存机制,默认值为 no。
VM 机制将数据分页存放,由 Redis 将访问量较少的页即冷数据 swap 到磁盘上,访问多的页面由磁盘自动换出到内存中。
vm-swap-file /tmp/redis.swap
虚拟内存文件路径,默认值为 /tmp/redis.swap,不可多个 Redis 实例共享。
vm-max-memory 0
将所有大于 vm-max-memory 的数据存入虚拟内存。
无论 vm-max-memory 设置多小,所有索引数据都是内存存储的(Redis 的索引数据 就是 keys)。
也就是说,当 vm-max-memory 设置为 0 的时候,其实是所有 value 都存在于磁盘。
默认值为 0。
vm-page-size 32
Redis swap 文件分成了很多的 page,一个对象可以保存在多个 page 上面,但一个 page 上不能被多个对象共享。
vm-page-size 是要根据存储的数据大小来设定的,作者建议如果存储很多小对象。
page 大小最好设置为 32 bytes 或者 64 bytes。
如果存储很大大对象,则可以使用更大的 page,如果不确定,就使用默认值。
vm-pages 134217728
设置 swap 文件中的 page 数量。
由于页表(一种表示页面空闲或使用的 bitmap)是在放在内存中的。
在磁盘上每 8 个 pages 将消耗 1 byte 的内存。
vm-max-threads 4
设置访问 swap 文件的线程数,最好不要超过机器的核数。
如果设置为 0,那么所有对 swap 文件的操作都是串行的,可能会造成比较长时间的延迟。
默认值为 4。
glueoutputbuf yes
设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启。
hash-max-zipmap-entries 64
hash-max-zipmap-value 512
指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法。
activerehashing yes
指定是否激活重置哈希,默认为开启。
include /path/to/local.conf
指定包含其它的配置文件,可以在同一主机上多个 Redis 实例之间使用同一份配置文件,而同时各个实例又拥有自己的特定配置文件。
总结
以上就是redis.config文件的介绍。
相关文章:

Redis之 redis.config配置文件
文章目录 前言一、基本配置1.单位2.包含3.网络配置4.通用5.快照6.安全7.限制8.仅追加模式 二、总体主要介绍总结 前言 行家一出手,就知有没有,让一起学习redis.config配置文件。 一、基本配置 Redis 的配置文件位于 Redis 安装目录下,文件名…...

BIOS开发笔记 - CMOS
CMOS原来指的是一种生产电子电路的工艺,在PC上一般指的是RTC电路单元,因为早期它是由这种工艺生产出来的,所以又把RTC称作了CMOS。 RTC(Real Time Clock)即实时时钟,用于保存记录时间和日期,也可以用来做定时开机功能。RTC靠一组独立的电源给它供电,这样设计的目的就是…...

leetcode_117 填充每个节点的下一个右侧节点指针 II
文章目录 1. 题意2. 题解2.1 BFS2.2 BFS空间优化2.3 DFS序层次记录 3. Ref 1. 题意 在一颗树的同层之间用指针把他们链接起来。 填充每个节点的下一个右侧节点指针 II 2. 题解 2.1 BFS 用一个变量记录下同层最右侧的节点,当遍历到时更新下一层的最右侧节点即可…...

亲测 IDEA Pycharm 全家桶 自动重置免费30天
理论上是通用的 插件市场安装 添加第三方插件仓库地址 在Settings/Preferences... -> Plugins 内手动添加第三方插件仓库地址:https://plugins.zhile.io 搜索:IDE Eval Reset插件进行安装。如果搜索不到请注意是否做好了上一步?网络是否…...

Marp: 将 Markdown 变为 PPT 式样的 VScode 插件
样例代码: --- marp: true size: 16:9 theme: default header: footer: --- <!-- _footer: Jia ming<br>Gansu University of Political Science and Law --> <!-- _backgroundColor: lightskyblue --> ## <!-- fit --> 笔记检验概述>…...

根据正则表达式截取字串符,这个办法打败99%程序员
作为一名程序员,常常会在以下情况下使用函数功能根据正则表达式截取字符串: 1.字符串处理:当需要使用正则表达式匹配和提取字符串中的特定模式时,可以使用该函数。例如,从一段文本中提取电子邮件地址、电话号码或网站…...

冬天女儿的羽绒服就选它了,哈哈很喜欢
长款设计感满满的羽绒服 真的一下子就戳中了我的心巴 90白鸭绒+杜邦三防工艺+精细压线 厚实保暖不臃肿,粉色撞色甜美又可爱...

Vim插件配置
工欲善其事,必先利其器,倒腾一下vim的配置,做个记录。 ".vimrc里的内容:""for base configure set t_Co256 if ! has("gui_running")set t_Co256 endifif &diffhighlight DiffAdd ctermbold cte…...

函数参数的最佳传递方式与现代C++的规则
函数参数的最佳传递方式与现代C的规则 在C中,如何最佳地传递函数参数以及如何处理类的特殊成员函数,一直是优化性能和代码质量的重要话题。下面我将详细解释这些概念。 使用移动语义实现 Swap 函数 移动语义(Move Semantics)能…...

Asterisk Ubuntu 安装
更新环境 sudo apt update sudo apt install wget build-essential git autoconf subversion pkg-config libtool sudo contrib/scripts/get_mp3_source.sh A addons/mp3 A addons/mp3/common.c A addons/mp3/huffman.h A addons/mp3/tabinit.c A addons/mp3/Ma…...

rwkv模型lora微调之accelerate和deepspeed训练加速
目录 一、rwkv模型简介 二、lora原理简介 三、rwkv-lora微调 1、数据整理 2、环境搭建 a、Dockerfile编写 b、制造镜像 c、容器启动 3、训练代码修改 四、模型推理 1、模型推理 2、lora权重合并 3、推理web服务 五、总结 由于业务采用的ChatGLM模型推理成本太大了…...

分享一下在微信小程序里怎么做一个投票链接
在当今信息化社会,投票已成为各行各业收集意见、汇聚智慧的重要手段。传统的投票方式往往需要投入大量人力物力,而如今,借助微信小程序,我们可以在几分钟内创建一个高效、便捷的投票平台。本文将详细介绍如何在微信小程序中添加投…...

v-model语法糖
v-model原理 v-model实现双向绑定的语法糖,常用于表单与组件之间的数据双向绑定v-model本质上是 value属性和input事件的一层包装 v-model的作用:提供数据的双向绑定数据发生了改变,页面会自动变 v-bind:value页面输入改变 , 数据…...

纷享销客荣获最佳制造业数字营销服务商奖
2023年10月26日,第二届中国制造业数智化发展大会在上海盛大召开。本次大会汇聚了制造行业的顶尖企业和专家,共同探讨如何通过数字化转型赋能企业自身成长,实现信息化向数字化的升级转型。 在本次盛会上,纷享销客以其卓越的基本面、…...

蓝桥杯每日一题2023.11.3
题目描述 承压计算 - 蓝桥云课 (lanqiao.cn) 题目分析 将重量存入a中,每一层从上到下进行计算,用d进行计算列的重量,当前d的重量应为正上数组和右上数组的个半和并加上自身的重量 计算到30层记录最大最小值,进行比例运算即可 …...

中国电子云-隐私计算-云原生安全可信计算,物理-硬件-系统-云产品-云平台,数据安全防护
目录 联邦学习的架构思想 中国电子云-隐私计算-云原生安全...

PHP服务器端电商API原理及示例讲解(电商接口开发/接入)
下面小编就为大家分享一篇PHP服务器端API原理及示例讲解(接口开发),具有很好的参考价值,希望对大家有所帮助 相信大家都做过PHP请求电商API接口获取数据,比如淘宝平台商品API接口,订单接口,京东接口,1688接…...

Spring Cloud应用- Eureka原理、搭建
初期对Spring Cloud的学习以应用搭建为主,所以内容不会太枯燥。 一直以来,自以为Spring全家桶的学习中,Spring framework是基础中的基础,部分内容也还是必须要读源码去理解底层原理,SpringMVC、SpringBoot,…...

Servlet 设置启动时机(web.xml方式和@WebServlet方式)
1、通过web.xml方式 5)Servlet的启动时机 - 默认情况下,servlet是不会随着容器的启动而被实例化的,只有当第一次给我发请求时才会被实例化那么,这种情况对于第一次请求是不公平的因此,为了提高用户体验度,提高服务器的…...

一个使用uniapp+vue3+ts+pinia+uview-plus开发小程序的基础模板
uniappuviewPlusvue3tspiniavite 开发基础模板 使用 uniapp vue3 ts pinia vite 开发基础模板,拿来即可使用,不要删除 yarn.lock 文件,否则会启动报错,这个可能和 pinia 的版本有关,所以不要随意修改。 拉取代码…...

Kali安装docker
第一步:kali添加Docker官方的GPG密钥 curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add 第二步:进入root更新源: su rootecho ‘deb https://download.docker.com/linux/debian stretch stable’> /etc/ap…...

Maven第七章:Maven工程最佳实践
Maven第七章:Maven工程最佳实践 前言 本章重点,通过一个maven工程最佳实践案例,熟悉和掌握maven在项目中的应用基本思路,让你的技能值瞬间暴涨。 最佳实践 确定项目的坐标和依赖 在Maven中,项目的坐标定义了项目的唯一标识符,包括groupId、artifactId和version。因此,在…...

【深度学习】【pytorch】对卷积层置零卷积核进行真实剪枝
最近需要对深度学习模型进行部署,因此需要对模型进行压缩,博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 前言卷积层剪枝总结 前言 深度学习剪枝(Pruning)是一种用于减少神经网络模型大小、减少计算量和提高推理效率的技术,通过去除神经…...

机器人仿真-gazebo学习笔记(3)URDF和机器人模型
1.URDF简介 URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式,ROS提供了URDF文件的c解析器,可以解析URDF文件中使用XML格式的机器人模型。 urdf - ROS Wiki 自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。 1.URDF文件常用的…...

lua-resty-request库写入爬虫ip实现数据抓取
根据提供的引用内容,正确的库名称应该是lua-resty-http,而不是lua-resty-request。使用lua-resty-http库可以方便地进行爬虫,需要先安装OpenResty和lua-resty-http库,并将其引入到Lua脚本中。然后,可以使用lua-resty-h…...

gitlab Activating and deactivating users
原文:Redirecting... Deactivating a userActivating a user Activating and deactivating users GitLab 管理员可以停用和激活用户. Deactivating a user 在 GitLab 12.4 中引入 . 为了临时阻止没有最近活动的 GitLab 用户访问,管理员可以选择停用…...

linux入门到精通-第五章-动态库和静态库
目录 参考概述1、静态链接2 、动态链接3 、静态、动态编译对比 静态库和动态库简介传统编译 静态库制作和使用1、创建静态库的过程2、使用静态库 动态库制作和使用1、创建动态库的过程1)、生成目标文件,此时要加编译选项:-fPIC (f…...

markdown 如何更改字体以及颜色等功能
markdown 是IT人士写文档的常用方式,但是markdown默认又不支持颜色字体等特殊功能,所以呢想实现字体颜色高亮等特殊功能,实现的方法呢就是使用HTML,所以将部分文字改成HTML代码就行 颜色 <font color#0099ff>color #0099f…...

一次cs上线服务器的练习
环境:利用vm搭建的环境 仅主机为65段 测试是否能与win10ping通 配置转发 配置好iis Kali访问测试 现在就用burp抓取winser的包 开启代理 使用默认的8080抓取成功 上线...

STM32-高级定时器
以STM32F407为例。 高级定时器 高级定时器比通用定时器增加了可编程死区互补输出、重复计数器、带刹车(断路)功能,这些功能都是针对工业电机控制方面。 功能框图 16位向上、向下、向上/向下自动重装载计数器。 16位可编程预分频器,…...