redis配置篇-03

2023-10-27

redis的配置文件存放位置

windows系统下,redis的默认配置文件放在安装目录的根目录,即redis.windows.conf
这里写图片描述
linux系统下,redis的默认配置文件存放在安装目录的根目录,即redis.conf
这里写图片描述
该篇以linux下的配置文件为例,

redis配置文件的注释

这里写图片描述
这一段文字出现在redis.conf中的第3行-13行,讲解了两个方面

  1. redis配置文件的单位,以bytes为基础
  2. redis配置文件的单位不区分大小写

这里写图片描述
这一段文字出现在redis.conf中的第15行-31行,讲解了includes方块。

  1. redis.conf可以像struts.xml配置文件,以当前配置文件为根,导入其他配置文件

接下来是general(通用)模块,在redis.conf的33行到118行
这里写图片描述
daemonize
守护线程,默认以前台线程启动。将值设置为yes,将后台运行。redis instance会将进程号pid写入默认文件/var/run/redis.pid。
pidfile
设置pid文件的存放位置,默认为/var/run/redis.pid
port
端口号,默认为6379,此处可设置,当不同端口号的客户端启动,将意味这些是不同客户端,可理解为分布式

这里写图片描述
tcp-backlog
设置tcp的backlog,backlog其实是一个TCP连接中的队列,backlog队列总和=未完成三次握手队列 + 已经完成三次握手队列。
在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。注意这个值不能大于Linux系统在/proc/sys/net/core/somaxconn设定的值的值,默认511
这里写图片描述
bind
redis默认情况下会在服务器上所有有效的网络接口上监听客户端连接,如果想他在指定的一个或多个网络接口上监听,可以绑定一个或多个ip,以此来做限定,多个ip用空格隔开

这里写图片描述
timeout
当客户端闲置多少秒后关闭连接,设置为0表示关闭此功能,默认关闭
这里写图片描述
tcp-keepalive
单位为妙,表示使用SO_KEEPALIVE检测客户端是否处于健康状态,避免服务器长时间处于堵塞状态
这里写图片描述
loglevel
日志级别。有四个选项,
debug(记录大量日志信息,开发测试阶段使用),
verbose(较多日志信息),
notive(适量日志信息,使用于生产环境),
warning(仅有部分重要、关键信息才会被记录)
这里写图片描述
logfile
日志文件的位置,当指定为空字符串时,为标准输出,如果redis已守护进程模式运行,那么日志将会输出到 /dev/null 。
这里写图片描述
syslog-enabled
是否把日志记录到系统日志。默认注释掉

这里写图片描述
database
设置数据库的数目,默认16个,下标为0-15的数值


接下来是SNAPSHOTTING(快照)模块,在redis.conf的120行到187行,此块涉及到redis的持久化–rdb
这里写图片描述
save
保存快照数据到磁盘,格式是save < seconds> < changes> 。意思是当多少秒内改变了多少个keys就保存一次到磁盘文件中。
save 900 1 当900秒内改变1次key就保存
save 300 10 当300秒内改变10次key就保存
save 60 10000 当60秒内改变10000次key就保存
如果想禁用rdb功能,可以将save传空参,即save “”,或者注释掉所有save

这里写图片描述
stop-writes-on-bgsave-error
默认情况下,如果 redis 最后一次的后台保存失败,redis 将停止接受写操作,这样以一种强硬的方式让用户知道数据不能正确的持久化到磁盘, 否则就会没人注意到灾难的发生。 如果后台保存进程重新启动工作了,redis 也将自动的允许写操作。
然而你要是安装了靠谱的监控,你不在乎数据不一致,你就改成 no 好了。

这里写图片描述
rdbcompression
对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能

这里写图片描述
rdbchecksum
在存储快照后,还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果希望获取到最大的性能提升,可以关闭此功能

这里写图片描述
dbfilename
快照文件rdb的文件名

dir
快照文件rdb的存放目录,同时,aof文件也会存放在该目录,默认当前目录
这里写图片描述


接下来是SECURITY(安全)模块,在redis.conf的378行到411行,
这里写图片描述
requirepass
设置redis连接密码,默认是不用密码的


接下来是LIMITS(限制)模块,在redis.conf的412行到483行,
这里写图片描述
Maxclients
设置redis同时可以与多少个客户端进行连接。默认情况下无限制

当你无法设置进程文件句柄限制时,redis会设置为当前的文件句柄限制值减去32,因为redis会为自身内部处理逻辑留一些句柄出来。如果达到了此限制,redis则会拒绝新的连接请求,并且向这些连接请求方发出“max number of clients reached”以作回应。

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

这里写图片描述
maxmemory-policy
当内存使用达到最大值时,redis使用的移除规则。
1. volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used )
2. allkeys-lru 利用LRU算法移除任何key
3. volatile-random 移除设置过过期时间的随机key
4. volatile-ttl 移除即将过期的key(minor TTL)
5. noeviction noeviction 不移除任何key,只是返回一个写错误 。默认选项
6. allkeys-random 移除随机key

这里写图片描述
maxmemory-samples
设置样本数量,LRU算法和最小TTL算法都并非是精确的算法,而是估算值,所以你可以设置样本的大小,


接下来是APPEND ONLY MODE(快照)模块,在redis.conf的484行到600行,此块涉及到redis的持久化–aof(APPEND ONLY MODE追加模式)

这里写图片描述
appendonly
是否启用aof持久化方式 。即是否在每次更新操作后进行日志记录,默认配置是no

这里写图片描述
appendfilename
aof日志文件的文件名,默认值为appendonly.aof

这里写图片描述
appendfsync
aof文件刷新的频率。有三种:

  1. no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
  2. always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全
  3. everysec每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
    默认everysec

这里写图片描述
auto-aof-rewrite-percentage
auto-aof-rewrite-min-size
设置重写的基准值,当AOF文件增长到一定大小的时候Redis能够调用 BGREWRITEAOF 对日志文件进行重写 。当AOF文件大小大于该配置项时自动开启重写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis配置篇-03 的相关文章

  • 使用 Sentinels 升级 Redis 的最佳实践?

    我有 3 个 Redis 节点 由 3 个哨兵监视 我进行了搜索 文档似乎不清楚如何最好地升级此类配置 我目前使用的是 3 0 6 版本 我想升级到最新的 5 0 5 我对这方面的程序有几个疑问 升级两个大版本可以吗 我在我们的暂存环境中执
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr
  • ServiceStack.Redis:无法连接:sPort:

    我经常得到 ServiceStack Redis 无法连接 sPort 0 或 ServiceStack Redis 无法连接 sPort 50071 或其他端口号 当我们的网站比较繁忙时 就会出现这种情况 Redis 本身看起来很好 CP
  • Redis 中存储整数和字符串的区别

    这两个命令有什么区别吗 LPUSH myset 123 LPUSH myset 123 我想存储大约 500 万个整数 并且我想以最有效的方式做到这一点 不 没有什么区别 两者都存储为字符串 从redis io http redis io
  • 为什么单个 Redis 实例不是线程安全的?

    https github com xetorthio jedis wiki Getting started https github com xetorthio jedis wiki Getting started 在多线程环境中使用Jed
  • Redis 在键过期时更新排序集

    我有一个 Redis 服务器 其中包含一组键值对和一个排序集 提供这些键值对的键的索引 键值对可以进入 已完成 状态 此时需要在 1 小时后删除它们 这可以通过在键上设置到期时间来简单地实现 但从排序集中清除它们似乎更成问题 我可以有一个过
  • 没有适用于机器人的 Laravel 会话

    我在大型 Laravel 项目和 Redis 存储方面遇到问题 我们将会话存储在 Redis 中 我们已经有 28GB 的 RAM 然而 它的运行速度仍然相对较快 达到了极限 因为我们有来自搜索引擎机器人的大量点击 每天超过 250 000
  • Web API 缓存 - 如何使用分布式缓存实现失效

    我有一个 API 目前不使用任何缓存 我确实有一个正在使用的中间件 它可以生成缓存标头 Cache Control Expires ETag Last Modified 使用https github com KevinDockx HttpC
  • 如何在Redis中正确存储图片?

    决定将图像存储在Redis中 如何正确执行 现在我这样做 redis gt set image path here is the base64 image code 我不确定这是否正常 将图片存储在Redis中是完全可以的 Redis 键和
  • 检查 Redis 列表中是否已存在某个值

    我想知道是否有办法检查 redis 列表中是否已存在某个键 我无法使用集合 因为我不想强制唯一性 但我确实希望能够检查字符串是否确实存在 Thanks 您的选择如下 Using LREM如果发现则更换它 维护一个单独的SET与您的LIST
  • JedisPoolConfig 不可分配给 GenericObjectPoolConfig

    我有一个基于 Spring 的 Java Web 应用程序托管在 Heroku 上 我正在尝试使用 Redis 实现来利用 Spring 缓存抽象 当服务器启动时 我收到一条错误消息 Type redis clients jedis Jed
  • 在 Redis 中存储 IP 范围

    我有很多不同提供商的 IP 范围 例如 P1 192 168 1 10 192 168 1 50 192 168 2 16 192 168 2 49 P2 17 36 15 34 17 36 15 255 P3 我将此 IP 转换为 int
  • 如何在Redis中使用HSCAN命令?

    我想在我的作业中使用 Redis 的 HSCAN 命令 但我不知道它是如何工作的 Redis 的官方页面 http redis io commands hscan http redis io commands hscan 这个命令给了我空白
  • 如果没有过期的内容,Redis maxmemory-policy volatile-lru 是否会被驱逐?

    我有一个 redis 服务器 设置了maxmemory policy set to volatile lru 文档表明 当达到内存限制时 这将从设置过期的条目集中逐出 在这种情况下 redis 是否只驱逐过期的项目 如果内存中的所有内容都设
  • 使用 Gorilla 会话自定义后端有什么优势?

    我想使用 Redis 进行会话管理 但我不明白使用 Redis 作为 Gorilla 会话包的自定义后端比直接使用它有什么优势 Gorilla 会话包的链接 http www gorillatoolkit org pkg sessions
  • 如何暂停或恢复 celery 任务?

    我的项目中有一项要求 客户可以暂停或恢复正在挂起的流程 而不是流程流程 我在用网络套接字显示芹菜任务结果 但在暂停 恢复时我不明白如何设计代码 我想到的唯一方法就是revoke暂停请求中的任务 同时保留数据撤销的过程在缓存中 并稍后在res
  • 如何在Redis中存储聚合目录树搜索结果

    我有一个很大的产品目录树 目前包含约 36000 个类别和约 100 万个产品 即叶子 它的结构如下 最大深度为 5 Cat1 Cat11 Cat111 Cat1111 Product1 Cat1112 Product1 Cat1113 P
  • Redis 会话序列化器 3.2 和 4.2 之间不匹配

    我有一个基于 Spring Cloud 的应用程序在多个 spring boot 服务器上运行 所有服务器使用 EnableRedisHttpSession共享相同的Spring Session 我现在想将第三方小部件集成到我的应用程序中
  • 使用 MongoDB 作为我们的主数据库,我应该使用单独的图数据库来实现实体之间的关系吗?

    我们目前正在为一家专业公司内部实施类似 CRM 的解决方案 由于存储信息的性质以及信息的不同值和键 我们决定使用文档存储数据库 因为它完全适合目的 在本例中我们选择 MongoDB 作为此 CRM 解决方案的一部分 我们希望存储实体之间的关

随机推荐

  • 基于.NET的企业级软件开发

    企业级开发最好基于一些成熟的框架 从而将主要精力集中到领域模型的设计上 1 UI与业务逻辑的隔离 在web领域可以采用ASP NET MVC框架 2 业务逻辑与DB的隔离 可以采用Entity Framework框架 3 业务逻辑中涉及工作
  • 毕业设计-基于机器视觉的水表读数智能识别系统-OpenCV

    目录 前言 课题背景和意义 实现技术思路 一 系统总体方案设计 二 图像预处理的研究与实现 三 识别区域定位及字符分割的研究与实现 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备
  • 分治算法(Java)

    想必大家通过算法的名字就已经明白了 这个算法的过程 一个是分 一个是治 那么我为什么要使用这种算法呢 因为当前的问题是我们使用现有的方法是解决不了的 所以我们需要将一个复杂的问题分成两个或者是更多个相同或相似的子问题 然后再一我们已有的方法
  • 【detectron2】注册、训练、推断自己的数据集

    一 注册自己的数据集 使用detectron2训练自己的数据集 第一步要注册自己的数据集 首先保证自己的数据集标注是coco格式 就可以使用load coco json加载自己的数据集并转化为detectron2的专有数据格式 使用Data
  • C++中关于枚举的使用(enum)

    首先加入头文件 include
  • mysql中字段长度到底是字符数还是字节数?

    这个问题 困惑了很多新学者 今天就给大家来测试测试 首先来给个定长的字段类型 因为这样好看效果 超出的会被截取 create table test id int 10 not null auto increment test name ch
  • 在VMware ESXi服务器上配置NAT上网

    文章目录 前言 一 vSphere Client上操作 1 配置网络环境 2 创建软件路由 3 虚拟机设置 总结 相关文章 前言 在使用VMware workstation的时候 我们经常以NAT的方式配置虚拟机的网络 与桥接方式相比 这样
  • spring之application.yml配置

    server port 18080 context path netty logging config classpath logback xml 文件上传下载大小 速度配置 spring http multipart max file s
  • 15_弹性盒布局

    一 弹性盒子的基本概念 弹性盒属性的使用 概念 在父级元素设置设置弹性盒属性 容器 所有的子级元素会在父级容器的轴向上排列 项目 作用 控制所有的子级元素在父级元素上的排列位置 如何形成弹性盒 属性 display 显示方式 属性值 fle
  • 软件测试-兼容性测试

    1 兼容性测试综述 软件兼容性测试 检查软件之间是否能够正确交互和共享信息 交互可以在运行在同一台计算机上的应用程序之间发生 也可以在距离数千公里的不同计算机上的应用程序之间发生 还可以用软盘在两台计算机之间传输数据 兼容性测试要解决的问题
  • Visual Studio Code调试node.js:无法在PATH上找到运行时的node

    首先 环境变量Path中加入nodejs的路径 验证nodejs是否已经加入环境变量 接着 重新启动Visual Studio Code 试一下 是不是好了 附录 Visual Studio Code 调试 nodeJS launch js
  • 开源C++版本CGI库CGICC入门

    原发布在ChinaUnix 但未被自动搬迁过来 http blog chinaunix net uid 20682147 id 4895772 html PDF版本 https download csdn net download aque
  • 记一次在关于本地IDE能AC,牛客平台却显示数组越界问题——输入处理带来的问题!!!!

    在参加了百度 网易雷火 网易互娱 360笔试之后 被频繁遇到的数组越界问题深深困扰 为什么在eclipse上怎么测试 怎么看代码都找不到数组越界越在哪 不禁发出越你姥姥的惊叹 今天晚上再次遇到这个问题 在查看了各种遇到此类问题的帖子后 终于
  • 安装完Anaconda Navigator,“Mark for specfic version installation”显示灰色(不能更改包的版本)的解决方法

    最近安装完anaconda 出现了 Mark for specfic version installation 显示灰色的问题 解决方法很简单 只需要在 conda环境下输入以下命令即可 conda search python 仔细思考一下
  • 【C++】通过类来计算圆的周长

    include
  • 时域高通滤波算法(THPF)

    时域高通滤波算法 THPF 今天介绍一下图像非均匀校正中的场景校正算法 时域高通滤波算法 Temporal High Pass Filtering THPF 以及它后续的各种改进版本 空域和频域已经在之前的文章介绍过一些了 时域还没有 图像
  • RTKLIB源码解析(二)、 RTK定位(rtkpos.c)

    本博客是转载 感谢 rtklib代码详解 rtkpos c 博客园 哆啦A梦 博客园 主函数 rtkpos 1 设置基站位置 2 统计基站和流动站的卫星数量 3 单点定位解算 4 若定位模式为单点定位 直接返回 5 精密单点定位 6 动基线
  • steamVR插件的基本功能

    本文转载自http blog csdn net tyuiof article details 52789283 从这一节起我开始介绍一些vive的交互实现方式 比如手柄发出的射线 凝视 瞬移等等 SteamVR插件内都有这三种交互的辅助类
  • (Jquery功能篇)easy UI 验证功能

    截图展示 源代码展示
  • redis配置篇-03

    redis的配置文件存放位置 windows系统下 redis的默认配置文件放在安装目录的根目录 即redis windows conf linux系统下 redis的默认配置文件存放在安装目录的根目录 即redis conf 该篇以lin