Redis配置文件

news2024/11/16 0:36:19

Redis配置文件

自定义目录 /myreids/redis.conf

Units 单位

配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit。大小写不敏感
在这里插入图片描述

INCLUDES 包含

多实例的情况可以把公用的配置文件提取出来

网络配置相关

bind

默认情况 bind=127.0.0.1 只能接受本机的请求访问

不写的情况下,无限制接受任何ip地址的访问

服务器是需要远程访问的,所以需要将其注释掉

如果开启了protected-mode,那么在没有设定 bind ip且没有设密码的情况下,Redis只允许接受本机的响应

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RzJ5c8Br-1672389784822)(../AppData/Roaming/Typora/typora-user-images/image-20221228211656384.png)]

保存配置,停止服务,重新启动查看进程,不再是本机的访问了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WuvGZXnk-1672389784823)(../AppData/Roaming/Typora/typora-user-images/image-20221228211742289.png)]

protected-mode

将本机访问模式设置为 no
在这里插入图片描述

Port在这里插入图片描述

端口好,默认为 6379

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LtENhovS-1672389784824)(../AppData/Roaming/Typora/typora-user-images/image-20221228211907129.png)]

tcp-backlog

设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已完成三次握手队列

在高并发环境下你需要一个高backlog值来避免慢客户端连接问题

注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128),所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)两个值来达到想要的效果

timeout

一个空闲的客户端维持多少秒会关闭,0表示关闭该功能。即永不关闭

tcp-keepalive

对访问客户端的一种心跳检测,每隔n秒检测一次

单位为秒,如果设置为0,则不会进行Keepalive检测,建议设置为60

unixsocket/tmp/redis.sock

unix指定监听socket,指定用来监听连接的unix套接字路径。没有默认值,不指定的话Redis不会通过unix套接字来监听

unixsocketperm 755

当只当监听为socket时,可以指定其权限为755

GENERAL 通用

daemonize

是否为后台进程,设置为yes

守护进程,后台启动

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-su2chYnB-1672389784825)(../AppData/Roaming/Typora/typora-user-images/image-20221228213051590.png)]

pidfile

存放pid文件的位置,每个实列会产生一个不同的pid文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0p0HaQqy-1672389784825)(../AppData/Roaming/Typora/typora-user-images/image-20221228213216586.png)]

loglevel

指定日志记录级别,Redis共支持四个级别:debug、verbose、notice、warning,默认notice

四个级别根据使用阶段来选择,生产环境一般选择notice或者warning

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VMh7qVzP-1672389784826)(../AppData/Roaming/Typora/typora-user-images/image-20221229100901866.png)]

logfile (stdout)

日志文件名称。也可使用”stdout“强制让Redis吧日志写到标准输出上;如果Redis是以守护进程方式运行时,设置日志显示到标准输出的话,日志会发送到/dev/null

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KT9aQTVG-1672389784826)(../AppData/Roaming/Typora/typora-user-images/image-20221229103531762.png)]

databases 16

设定库的数量, 默认是16, 默认使用数据库为0。可以使用 SELECT WHERE dbid(0~’databases’- 1) 命令在连接上指定数据库id

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OBhU6w9t-1672389784826)(../AppData/Roaming/Typora/typora-user-images/image-20221229103712062.png)]

syslog-enable no

使用系统日志记录器,只要设置”syslog-enable“ 为 ”yes”即可

syslog-ident redis

指明syslog身份

syslog-facility local0

指明syslog的设备,必须时一个用户或者是 LOCAL0 ~ LOCAL 7之一

SECURITY 安全

设置密码

requirepass foobared

访问密码的查看、设置和取消

在命令中设置新密码,只是临时的。重启redis服务器,密码就还原了

永久设置,需要在配置文件中进行设置

Aredis:0>config get requirepass
1) "requirepass"
2) "123456"
Aredis:0>config set requirepass "111111"
"OK"
Aredis:0>config get requirepass
1) "requirepass"
2) "111111"

rename-command CONFIG

命令重命名
在共享环境下,可以为危险命令改变名字

LIMITS 限制

maxclients

设置redis同时可以与多个少个客户端进行连接

默认情况下为10000个

如果达到了此限制,redis则会拒绝新的请求连接,并且向这些连接请求方发出 “max number of clients reached” 以作回应

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9VG0BnKz-1672389784827)(../AppData/Roaming/Typora/typora-user-images/image-20221229105420302.png)]

maxmemory

必须设置,否则将内存占满,造成服务器宕机

设置 redis可以使用的内存量。一旦达到内存使用上限,redis将会视图移除内部数据,移除规则可以通过maxmemory-policy指定

如果redis无法根据移除规则来移除内存中的数据,或设置了 不允许移除,那么redis则会针对那些需要社情内存的指令返回错误信息, 如SET、LPUSH 等

但是对于无内存申请的指令,仍会正常响应,比如GET等。如redis是主机(说明有从机),那么在设置内存使用上限时,需要在系统中留出一些内存空间给同步队列缓存,只有设置的是 ”不移除“的情况下,才不用考虑这个因素

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bpTMJKqb-1672389784827)(../AppData/Roaming/Typora/typora-user-images/image-20221229111143110.png)]

maxmemory-policy

  • volatile-lru:使用LRU算法移除key,只对设置了过期时间的key

  • allkeys-lru:在所有集合key中,使用LRU算法移除key

  • volatile-random:在过期集合中移除随机的key,只对设置了过期时间的key

  • allkeys-random:在所有集合key中,移除随机的key在这里插入图片描述

  • volatile-ttl:移除TTL值最小的key,即临近过期的key

  • noeviction:不进行移除。针对写操作,只返回错误信息

maxmemory-samples

设置样本数量,LRU算法和最小TTL算法都并非精确算法,而是估算值,所以可以可以设置样本的大小,redis默认会检查这么多个key并选择其中LRU的那个

一般设置3到7的数字,数值越小越不准确,但性能消耗越小

LRU

LRU(Least recently used, 最近最少使用),其核心思想是:如果一个数据最近一段时间被访问过,那么以后被访问的几率越高,如果一个数据最近一段时间没有被访问过,那么将来被访问的几率越小;当内存超过限制时,应当把最久没有访问的数据淘汰。

TTL

IP头部有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,这个生存时间是由源主机设置初始值,但不是具体的时间,而是存储了一个IP数据报可以经过的最大路由数,每经过一个路由器此值就减1,当此值为0则数据报将被丢弃,同时发送ICMP报文通知源主机。

纯累加模式

appendonly no

默认情况下,Redis是异步的把数据导出到磁盘上。这种情况下,Redis挂掉的时候,最新的数据就丢了

如果不希望丢掉任何数据则使用纯累加模式:Redis每次写入的数据在接收后都写入appendonly.aof文件

appendonly.aof文件

每次启动后,Redis都会把这个文件的数据读入内存里

异步导出的数据库文件和纯累加文件可以并存(需要把save 设置都注释掉,关闭导出机制)

如果纯累加模式开启,那么Redis会在启动时载入日志文件而忽略导出的dump.rdb文件

appendfilename appendonly.aof

纯累加模式的文件名

appendfsync always

appendfsync everysec

appendfsync no

fsync 请求操作系统立即把数据写入到磁盘

  • no 不立即写入
  • always 每次写操作都立即写入aof文件 (慢, 安全)
  • everysec 每秒写一次 (默认)

auto-rewrite-percentage 100

auto-aof-rewrite-min-size 64mb

自动重写AOF文件

达到AOF日志文件指定大小的百分比,Redis能通过BGREWRITEAOF 自动重写AOF文件

指定被重写日志的最小尺寸,这样避免达到最大百分比但尺寸很小还要重写的情况

快照

save

save 900 1

save 300 10

save 60 10000

把数据保存的磁盘上 save ,会在指定秒数和数据变化次数后把数据写到磁盘上

rdbcompression yes

导出的.rdb文件时是否采用LZF压缩

dbfilename dump.rdb

数据库的文件名

dir ./

工作目录,数据库会写到这个目录下,文件名时上面的 dbfilename

同步

slaveof

主从同步。通过slaveof配置来实现Redis实例的备份

masterauth

如果设置了密码,那么slave在开始同步之前必须进行身份验证,否则它的同步请求会被拒绝

slave-server-stale-data yes

当一个slave和master失去连接,或者同步正在进行,slave的行为有两种可能:

  1. 如果 slave-server-stale-data 设置为 yes,slave会继续响应客户端的请求,可能是正常数据,也可能是还没获得值的空数据
  2. 如果 slave-server-stale-data 设置为no, slave会回复“ 正在从Master同步 (SYNC with master in progress)来处理各种请求,除了INFO 和 SLAVEOF 命令

repl-ping-slave-period 10

slave根据只当的时间间隔向服务器发送ping请求

时间间隔通过 repl-ping-slave-period设置, 默认为 10

repl-timeout60

设置大块数据I/O、向Master请求数据和额ping响应的过期时间, 默认60秒

确保这个值比repl-ping-slave-period大, 否则 master和slave之间的传输过期时间比预想的要短

慢查询日志

可以为慢查询日志配置两个参数:

一是超标时间,单位为微妙

另一个是慢查询日志长度。当一个新的命令被写进日志的时候,最老的那个记录会被删除

slowlog-log-slower-than 10000

Redis慢查询日志可以记录超过指定时间的查询。运行时间不包括各种 I/O时间

slow-max-len 128

这个长度没有限制,只要有足够的内存。可以通过SLOWLOG RESET 来释放内存

高级配置

hash-max-zipmap-entries 512

hash-max-zipmap-value 64

当有大量数据时,适合用哈希编码(需要更多的内存),元素数量上限不能超过给定的限制

可以通过下面选项来设定这些限制

list-max-ziplist-entries 512

list-max-ziplist-value 64

与哈希类似,数据元素较少的情况下,可以用另一种方式来编码从而节省大量空间

这种方式只有符合下面限制才可以使用

set-max-intset-entries 512

还有一种特殊编码情况:数据全是64为无符号整型数字构成的字符串

下面这个配置项就是用来限制这种情况下使用这种编码的最大上限的。

zset-max-ziplist-entries 128

zset-max-ziplist-value 64

与第一、第二种情况相似,有序序列也可以使用一种特别的编码方式来处理, 可以节省大量空间

这种编码知识和长度和元素都符合下面限制的有序序列:

activerehashing yes

哈希刷新,每100个cpu毫秒会拿出1个毫秒来刷新Redis的主哈希表(顶级键值映射表)

redis所用的哈希表实现采用延迟哈希刷新机制:对一个哈希表操作越多,哈希刷新操作就越频繁;反之,如果服务器非常不活跃那么就是使用内存保存哈希表

默认是每秒进行10此哈希表刷新,用来刷新字典,然后尽快释放内存

如果对延迟比较在意的话 使用 “activerehashing no”, 每个请求延迟2毫秒

如果希望尽快释放内存 使用 “activerehashing yes”

客户端输出缓存限制

客户端输出缓存限制轻质断开读取速度比较慢的客户端

三种限制类型

normal -> 正常的客户端包括监控客户端

slave -> 从客户端

pubsub -> 客户端至少订阅了一个频道或者模式

客户端输出缓存限制语法 client-output-buffer-limit <类别><强制限制><软性限制><软性时间>

client-output-buffer-limit normal 0 0 0

client-output-buffer-limit slave 256mb 64mb 60

client-output-buffer-limit pubsub 32mb 8mb 60

  • 达到强制限制缓存大小,立即断开链接
  • 达到软性限制,仍然会有软性时间大小的链接时间
  • 默认正常客户端无限制,只是请求后,异步客户端数据请求速度快于它能读取数据的速度
  • 订阅模式和主从客户端有默认限制,因为他们都接受推送
  • 强制限制和软性限制都可以设置为0来禁用

hz 10

设置Redis后台任务执行频率,比如清除过期键任务

设置范围 1到 500,默认10,越大越消耗CPU,延迟越小

建议不超过100

aof-rewrite-incremental-fsync yes

当子进程重写AOF文件,以下选项开启时,AOF文件会每产生32M数据同步一次(有助于更快写入文件到磁盘避免延迟)

包含

include /path/to/local.conf

include /path/to/other.conf

包含一个或多个其它配置文件

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

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

相关文章

【WSL】[01] windows subsytem linux 配置和使用 - ubuntu GUI安装

第【1】章前言&#xff1a; AI的训练和设计似乎ubuntu是必要的&#xff0c;而且&#xff0c;GPU的配置似乎也是要在Ubuntu下&#xff0c;某些模式版本才能兼容。单独搞一个编译服务器是个思路&#xff0c;但是&#xff0c;如果资金不够&#xff0c;也许要考虑在Windwos和Linux…

程序员出身备考PMP,如何避开备考误区顺利拿到3A成绩?

还在犹豫2023年如何才能提升自己的职场竞争力吗&#xff1f;PMP项目管理证书值得大家了解。掌握这些备考技巧&#xff0c;让你的PMP学习少走弯路。有计划明年3月参考PMP的小伙伴注意啦&#xff01; 今天小赛邀请了一位程序员出身的小伙伴&#xff0c;一起来看看他是如何在忙碌…

linux下如何使用configure/make/make install命令编译安装卸载程序

源码的安装一般由3个步骤组成&#xff1a;配置&#xff08;configure&#xff09;、编译&#xff08;make&#xff09;、安装&#xff08;make install&#xff09;。安装成功的源码就是所谓的可执行文件&#xff0c;在你不需要的时候&#xff0c;也是可以删除/卸载&#xff08…

leetcode1456. 定长子串中元音的最大数目

给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s “abciiidef”, k 3 输出&#xff1a;3 解释&#xff1a;子字符串…

Spring的7种事务传播方式

Spring事务传播行为体现在某个service方法调用另一个service方法&#xff0c;事务该如何进行下去。 Spring支持7中事务传播方式&#xff0c;在Propagation类中可以看到&#xff0c;如下&#xff1a; REQUIRED(0), SUPPORTS(1), MANDATORY(2), REQUIRES_NEW(3), NOT_SUPPORTED…

【操作系统】进程的属性及状态(三态五态七态)

文章目录进程的概念进程的属性1、结构性2、共享性3、动态性4、独立性5、制约性6、并发性进程状态1、三态模型2、五态模型3、七态模型进程的概念 程进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程&#xff0c;也是操作系统进行资源分配和保护的基本…

Java中内部类的讲解(Java系列8)

目录 前言&#xff1a; 1.内部类 1.1内部类的概念 1.2内部类的分类 1.2.1实例内部类 1.2.2静态内部类 1.2.3局部内部类 1.2.4匿名内部类 结束语&#xff1a; 前言&#xff1a; 这次小编主要与大家分享一下什么是内部类&#xff0c;那么接下来就和小编一起来见识一下内…

aloam学习笔记(一)

开始学习aloam框架&#xff0c;记录一下最开始运行aloam中出现的各种问题以及解决方式。 1.aloam地址 GitHub - HKUST-Aerial-Robotics/A-LOAM: Advanced implementation of LOAM 2.安装aloam的一些依赖 主要是两个ceres和pcl库 2.1安装ceres ceres官方地址&#xff1a;I…

宝马335i手动挡和M3手动挡的对比

感受篇 *动力 两车的动力都堪称强悍&#xff0c;但发力感受差异非常大。335具备典型的涡轮车特征&#xff0c;动力来的比较突兀&#xff0c; 低速跟车时油门很难控制&#xff0c;给小了车走得慢&#xff0c;给大了就往前窜。转速拉到3000转以后335的动力刺激度非常高&#xff…

房产管理系统安全可靠性分析

数图互通房产管理 高校房产管理系统是基于公司自主研发FMCenter平台开发的应用系统。 一、系统安全性分析&#xff1a; 1.支持SSL传输协议&#xff0c;可以实现链路层的加密传输。 2.提供基于角色的授权体系&#xff0c;角色可自…

辞旧迎新,社科院与杜兰大学金融管理硕士项目引领你在金融的世界遇到更好的自己

不知不觉中2022年剩下最后的2天了&#xff0c;这一年中一半的时间是核酸&#xff0c;另一半是辛酸。当我们的理想快被生活磨灭的时候&#xff0c;记得把生活调成自己喜欢的频率&#xff0c;尽力而为。告别过去才能跟未来更好的相逢&#xff0c;新的一年我们的在职读研从社科院杜…

webdriver的尝试:三 【移动端的使用appium-配置】

文章目录appium安装appium与inspectorinspector配置配置信息获取inspector启动遇到的错误记录启动appium Selenium webdriver到移动端使用的是appium。 官方网站 介绍是&#xff1a;appium是一个app的自动化测试框架&#xff0c;使用webdriver协议。且可用于&#xff0c;原生…

【机器学习实战】二、随机森林算法预测出租车车费案例

随机森林算法预测出租车车费案例 一、导入第三方库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import sklearn二、加载数据集 train pd.read_csv(train.csv,nrows1000000) # 加载前1000000条数据 test pd.read_csv(…

Java-抽象类与接口

前言 温故而知新 最近从头来看当初学过的语法知识点, 温故而知新, 发现当初还有许多未掌握的知识, 所以我建议大家也要多温故, 可能当初有好多知识点是没掌握到的. 这篇博客的重点就是介绍抽象类与接口, 并阐述他们的区别. 一. 抽象类 1. 概念 在面向对象的概念中, 所有的…

git基础

代码托管平台&#xff1a;git.acwing.com 一、git基本概念 工作区&#xff1a;仓库的目录。工作区是独立于各个分支的。 暂存区&#xff1a;数据暂时存放的区域&#xff0c;类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。 版本库&#xff1a;存放所有已经提交…

黑马Hive+Spark离线数仓工业项目--数仓主题应用层ST层构建(2)

服务域&#xff1a;回访主题分析 目标&#xff1a;掌握回访主题的需求分析 路径 - step1&#xff1a;需求 - step2&#xff1a;分析 实施 需求&#xff1a;统计不同维度下的回访主题指标的结果 分析 - 指标 - 回访工程师数量、回访人员数量、回访人员最大数量、回访人员最…

C++学习 Day.8 (重载运算符和类型转换运算符)ps:一大波参考博客来袭~~

this指针 详解请点这里 复制构造函数详解 点这里和这里 指针的指针的地址&#xff0c;指针自身的地址&#xff0c;指针指向的地址 点这里 实例化解释很好 引用和指针的区别 点这里和这里 引用详解&#xff1a;C&#xff1a;引用的简单理解 - Tom文星 - 博客园 (cnblogs.co…

SMC详解

SMC全称:Secure Monitor Call 目的&#xff1a;进入到EL3异常等级 应用场景&#xff1a;大于等于EL1异常等级下使用&#xff08;EL0下不能使用&#xff09; 官方介绍以及使用方式如下&#xff1a; 主要配置&#xff1a; (1) SCR_EL3.SMD&#xff1a; (2) HCR_EL2.TSC 主要功…

ArcGIS基础实验操作100例--实验20按像元修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验20 按像元修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&…

SpringCloud整合Seata(AT两阶段--场景: 下单减少库存)

文章目录零&#xff1a;前置操作 --- 搭建Seata服务一&#xff1a;介绍说明二&#xff1a;添加undolog表三&#xff1a;框架整合Seata相关依赖3.1&#xff1a;引入公共SEATA POM依赖3.2&#xff1a;业务服务引入SEATA公共组件依赖3.3&#xff1a;yml文件配置Seata客户端和注册信…