当前位置: 首页 > news >正文

Redis配置文件

Redis可以在没有配置文件的情况下使用内置的默认配置启动,但是这种设置仅推荐用于测试和开发。

配置Redis的正确方法是提供一个Redis配置文件,通常称为 redis.conf

通过命令行传递参数启动

你也可以直接使用命令行传递Redis配置参数。这对于测试非常有用。下面是一个使用端口6380启动一个新Redis实例的例子,它是运行在127.0.0.1端口6379的实例的副本。

./redis-server --port 6380 --replicaof 127.0.0.1 6379

执行REPLIACOF hostname port会将当前服务器转变为某一服务器的副本服务器

通过命令行传递的参数的格式与redis.conf文件中使用的格式完全相同,只是关键字的前缀是--

在服务器运行时更改Redis配置

你可以在不停止和重新启动服务的情况下动态地重新配置Redis,或者使用特殊命令CONFIG SETCONFIG GET以编程方式查询当前配置。

请注意,动态修改配置对redis.conf文件没有影响,因此下次重新启动Redis时,将使用旧配置。

要使CONFIG SET的配置修改永久生效,您可以手动修改redis.conf配置文件,也可以使用CONFIG REWRITE,它将自动扫描您的redis.conf文件并更新与当前配置值不匹配的字段。不添加不存在但设置为默认值的字段,配置文件中的注释将被保留。

配置文件详解

redis.conf配置文件:https://raw.githubusercontent.com/antirez/redis/7.2/redis.conf

下面整理一些比较重要的配置项:

配置项配置项值范围说明
daemonizeyes/noyes表示启用守护进程,默认是no即不以守护进程方式运行。
port指定Redis监听端口,默认端口为6379。
bind绑定的主机地址。如果需要设置远程访问则可以直接将这个配置项注释或者修改为bind *,这个配置项和下面的protected-mode控制了是否可以远程访问。
protected-modeyes/no保护模式。该模式控制了外网是否可以连接Redis服务。默认是Redis,即外网无法访问。如需外网连接Redis服务需要将此配置项修改为no。
logleveldebug/verbose/notice/warning日志级别,默认为notice
databases16设置数据库的数量,默认的数据库是DB 0,可以通过SELECT <dbid>选择数据库,dbid从0到databases-1。
rdbcompressionyes/no指定存储到本地数据库时是否压缩,默认为yes。Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该配置项,但会导致数据库文件变得巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认为dump.rdb
dir指定本地数据库存放目录
requirepass设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置maxclients为0,表示不做限制。当客户端连接数达到限制时,Redis会关闭连接并向客户端返回max number of clients reached错误信息。
maxmemory指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的key,此方法处理后,仍然到达最大内存限制,将无法进行写入操作,但仍可以进行读取操作。Redis新的vm机制,会把Key存放到内存中,Value会存放在swap区。配置项值范围为内存数值。
pidfile“/var/run/redis_6379.pid”当Redis以守护进程方式运行时,Redis默认会把pid写入 /var/run/redis.pid 文件,可以通过pidfile指定
timeout0当客户端闲置多长秒后关闭连接,默认为为0 ,表示关闭该功能。
save [ ]Redis默认提供如下配置:
save 3600 1:3600秒(1小时)内有一个更改
save 300 100:300秒(5分钟)内有100个更改
save 60 10000:60秒(1分钟)内有10000个更改
指定在多长时间内,有多少次更新操作,就将数据保存到数据文件,可以多个条件配合使用。
appendonlyyes/no指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为 no。

当涉及到内存时,可以以1K、5GB、4M等方式指定。

  • 1K => 1000 bytes

  • 1KB => 1024 bytes

  • 1M => 1000000 bytes

  • 1MB => 1024 * 1024 bytes

  • 1G => 1000000000 bytes

  • 1GB => 1024 * 1024 * 1024 bytes

使用1GB、1Gb、1gB都是等效的。

更多配置项介绍查看Redis样例配置文件,有比较详细的注释。

参考

  • https://zhuanlan.zhihu.com/p/469102289
  • https://redis.io/docs/management/config/
  • https://www.runoob.com/redis/redis-conf.html
http://www.lryc.cn/news/226228.html

相关文章:

  • [量化投资-学习笔记009]Python+TDengine从零开始搭建量化分析平台-KDJ
  • Activiti6工作流引擎:Form表单
  • Fortran 中的指针
  • 第七章 块为结构建模 P4|系统建模语言SysML实用指南学习
  • 提升中小企业效率的不可或缺的企业云盘网盘
  • Web 安全之时序攻击 Timing Attack 详解
  • 【objectarx.net】定时器的使用
  • C++:容器list的介绍及使用
  • 元核云亮相金博会,智能质检助力金融合规
  • Harmony 应用开发的知识储备
  • (层次遍历)104. 二叉树的最大深度
  • 【api_fox】ApiFox简单操作
  • 给CAD中添加自定义菜单CUIX
  • Qt重启windows服务
  • OD机考真题:宜居星球改造计划
  • Python每日练习:20个常用代码,初学者也可以自己实现!
  • GitHub Copilot Chat将于12月全面推出;DeepLearning.AI免费新课
  • Java的流操作:让数据处理更简单,更高效
  • 3D渲染原理及朴素JavaScript实现【不使用WebGL】
  • 解决《荒野大镖客》提示emp.dll文件丢失问题,总结5个修复方法
  • maven重新加载后Target bytecode version总是变回1.8
  • react+星火大模型,构建上下文ai问答页面(可扩展)
  • python---设计模式
  • Java编写xml文件时,文件中特殊字符如何解决?
  • vue3 ts pinia openapi vue-query pnpm docker前端架构小记
  • ARM day4
  • 3.30每日一题(多元函数微分学)
  • 《OSTEP》条件变量(chap30)
  • MySQL的索引和复合索引
  • 关于mac下pycharm旧版本没删除的情况下新版本2023安装之后闪退