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样例配置文件,有比较详细的注释。

参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值