【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解

Redis 配置文件详解 单位
redis 启动的时候会去读配置文件 redis.conf
【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解
文章图片

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 系列】redis 学习七,那些你不知道的 redis 配置文件详解
文章图片

环境中使用的 redis.conf 可以包含其他的 redis.conf,他们会整合成一个 配置文件来提供使用
NETWORK 网络
【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解
文章图片

bind 0.0.0.0 protected-mode yesport 6379

bind
绑定地址,若绑定 127.0.0.1 是本地访问,若需要远程访问,可以绑定一个真实的 ip 地址
protected-mode
保护模式是否开启,默认是开启
port
端口设置,默认端口是 6379,我们也可以修改成其他的可用端口,例如集群的时候就会修改到端口
GENERAL 通用
通用配置,常用的有
daemonize yespidfile /var/run/redis_6379.pidloglevel noticelogfile ""databases 16always-show-logo noset-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 yesrdbcompression yesrdbchecksum yesdir ./

stop-writes-on-bgsave-error
redis 持久化出错是否继续执行 redis 程序,默认是打开的,持久化错误不能影响 redis 程序的执行,需要正常进行下去
rdbcompression
持久化的文件是否需要压缩,默认是开启的,这个功能会比较消耗性能
rdbchecksum
保存 rdb 持久化文件的时候,会进行错误检查校验
dir
rdb 文件的保存目录
REPLICATION 主从复制
主从复制的配置在这个位置
【【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解】【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解
文章图片

详细的后续写到主动复制的时候详细的写
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 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 noappendfilename "appendonly.aof"# appendfsync always appendfsync everysec # appendfsync no

appendonly
默认是关闭的,redis 默认使用的是 rdb 持久化模式,基本是够用的
appendfilename
aof 持久化 文件的名字
appendfsync
持久化同步策略
  • always 每次修改都会同步,消耗性能
  • everysec 每秒执行一次同步,异常情况下会丢失上 1 s 的数据
  • no 不主动同步数据,系统会自动同步,这种方式速度最快,但是丢失数据的几率大
对于 redis 配置文件常用常改的位置都给大家分享到了,需要多多在实际学习和工作中多多应用,熟能生巧
参考资料:
redis_doc
欢迎点赞,关注,收藏 朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力
【Redis 系列】redis 学习七,那些你不知道的 redis 配置文件详解
文章图片

好了,本次就到这里
技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。
我是小魔童哪吒,欢迎点赞关注收藏,下次见~

    推荐阅读