乐趣区

关于后端:Redis-系列redis-学习七那些你不知道的-redis-配置文件详解

Redis 配置文件详解

单位

redis 启动的时候会去读配置文件 redis.conf

1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes
1gb => 1024*1024*1024 bytes

redis 外面单位是不分大小写的,例如,1GB 1Gb 1gB 示意的都是同一个意思

INCLUDES 蕴含

环境中应用的 redis.conf 能够蕴含其余的 redis.conf,他们会整合成一个 配置文件来提供应用

NETWORK 网络

bind 0.0.0.0 

protected-mode yes

port 6379

bind

绑定地址,若绑定 127.0.0.1 是本地拜访,若须要近程拜访,能够绑定一个实在的 ip 地址

protected-mode

保护模式是否开启,默认是开启

port

端口设置,默认端口是 6379,咱们也能够批改成其余的可用端口,例如集群的时候就会批改到端口

GENERAL 通用

通用配置,罕用的有

daemonize yes

pidfile /var/run/redis_6379.pid

loglevel notice

logfile ""

databases 16

always-show-logo no

set-proc-title yes

daemonize

是否以守护过程的形式运行,默认是 no,咱们需要的话能够批改成 yes

pidfile

当前台形式运行 redis,咱们就须要制订一个 pid 文件

loglevel

日志等级

 291 # Specify the server verbosity level.
 292 # This can be one of:
 293 # debug (a lot of information, useful for development/testing)
 294 # verbose (many rarely useful info, but not a mess like the debug level)
 295 # notice (moderately verbose, what you want in production probably)
 296 # warning (only very important / critical messages are logged)

和咱们我的项目中用到的统一:

  • debug

用于开发和测试的调试信息

  • verbose

常见有用的信息

  • notice

提示信息,冀望在生产环境中看到的

  • warning

告警信息,重要的信息会被打印到日志中

logfile

指定 redis 日志文件门路

databases

redis 数据库,默认是 16 个

always-show-logo

是否总是显示 reids logo,就是上面这个 logo

                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 6.2.5 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 ('      ,       .-`  | `,)     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 29303
  `-._    `-._  `-./  _.-'_.-'
 |`-._`-._    `-.__.-'_.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           https://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'|`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'`-._    `-.__.-'    _.-'`-._        _.-'
              `-.__.-'

SNAPSHOTTING 快照

快照,这里也就是 redis 的长久化,在规定的工夫外面,执行了多少次操作,就会长久化到文件中

redis 的长久化有两种

  • RDB
  • AOF

redis 是内存数据库,程序宕机或者断电都会导致数据失落,因而 redis 就有这样的长久化策略

# save 3600 1

# save 300 100

# save 60 10000
  • save 3600 1

如果 3600 s 内 redis 产生了 1 次操作,那么就会做数据长久化

  • save 300 100

如果 300s 内 redis 产生了 100 次操作,那么就会做数据长久化

  • save 60 10000

如果 60s 内 redis 产生了 10000 次操作,那么就会做数据长久化

前面咱们具体写到长久化的时候,再来细说和理论测试长久化的事件

stop-writes-on-bgsave-error yes

rdbcompression yes

rdbchecksum yes

dir ./

stop-writes-on-bgsave-error

redis 长久化出错是否继续执行 redis 程序,默认是关上的,长久化谬误不能影响 redis 程序的执行,须要失常进行上来

rdbcompression

长久化的文件是否须要压缩,默认是开启的,这个性能会比拟耗费性能

rdbchecksum

保留 rdb 长久化文件的时候,会进行谬误查看校验

dir

rdb 文件的保留目录

REPLICATION 主从复制

主从复制的配置在这个地位

具体的后续写到被动复制的时候具体的写

SECURITY 平安

redis 的平安相干配置文件,咱们来看看明码的事件

# The requirepass is not compatable with aclfile option and the ACL LOAD
# command, these will cause requirepass to be ignored.
#
# requirepass foobared

redis 默认是不设置明码的,然而咱们为了近程拜访平安,必须要设置明码

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) ""
127.0.0.1:6379> config set requirepass 888888
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "888888"

退出 redis 客户端,再次连贯 redis-server
root@iZuf66y3tuzn4wp3h02t7pZ:~# redis-cli
127.0.0.1:6379> ping
(error) NOAUTH Authentication required.

对 redis 设置了明码之后,退出 redis 客户端,再次连贯 redis-server,发现 redis 报错权限有余,此时咱们应用 redis-client 连贯 redis-server 就须要明码了

127.0.0.1:6379> auth 888888
OK
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "888888"

CLIENTS 客户端

限度客户端连接数

 maxclients 10000

maxclients

redis 限度客户端连接数 默认是 10000 个,这个数字咱们也能够批改成咱们所冀望的

MEMORY MANAGEMENT 内存治理

maxmemory <bytes>

maxmemory-policy noeviction

maxmemory
redis 配置的最大内存容量,单位是字节

maxmemory-policy

redis 内存达到下限之后的解决策略是什么样的,有如下几个选型:

  • noeviction

永不过期,返回谬误

  • volatile-ttl

删除行将过期的

  • allkeys-random

随机删除 key

  • volatile-random

随机删除行将过期的 key

  • allkeys-lru

删除 lru 算法的 key

  • volatile-lru

只对设置了过期工夫的 key 进行 LRU

LRU(Least recently used,最近起码应用)

APPEND ONLY MODE 追加模式(aof 配置)

APPEND ONLY MODE 用于 AOF 的长久化

appendonly no

appendfilename "appendonly.aof"

# appendfsync always
appendfsync everysec
# appendfsync no

appendonly

默认是敞开的,redis 默认应用的是 rdb 长久化模式,根本是够用的

appendfilename

aof 长久化 文件的名字

appendfsync

长久化同步策略

  • always 每次批改都会同步,耗费性能
  • everysec 每秒执行一次同步,异常情况下会失落上 1 s 的数据
  • no 不被动同步数据,零碎会主动同步,这种形式速度最快,然而失落数据的几率大

对于 redis 配置文件罕用常改的地位都给大家分享到了,须要多多在理论学习和工作中多多利用,游刃有余

参考资料:

redis_doc

欢送点赞,关注,珍藏

敌人们,你的反对和激励,是我保持分享,提高质量的能源

好了,本次就到这里

技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。

我是 小魔童哪吒,欢送点赞关注珍藏,下次见~

退出移动版