redis的配置很多,我这里主要是讲的是常用的配置参数
连接TCP配置
- tcp-keepalive :单位:秒,默认是300;客户端与服务器端如果没有任何数据交互,多少秒会进行一次ping,pong 交互。作用:①用于校验是否有机器已经挂了②保持网络活跃(通讯),
- timeout:单位秒,默认0;如果在一个 timeout 时间内,没有数据的交互,是否断开连接。0代表永不断开。
- maxclients : 默认是注释掉;配置最大连接该服务的最大客户端个数
通用配置:
- port : 默认值6379 ,redis 服务的端口号
- bind 客户端连接服务器的ip,默认是127.0.0.1 ,即本地访问,如果需要远程访问,需要将这个修改为公网ip或者内网ip
- daemonize : 默认值:no;是否开启守护进行启动redis
- loglevel :默认值:notice ;redis 服务器日志打印级别
- debug:在开发,调试阶段很有用,大量的日志
- verbose:在debug的基础上,减少连接信息以及内部信息
- notice:建议在生产使用
- warning:只打印重要、关键的信息
- databases:默认值:16;redis 数据库的数量,默认使用 0 数据库
数据持久化-快照配置
- save 900 1 :15分钟内,至少有1个写操作
save 300 10 :5分钟内,至少有10个操作
save 60 10000 :1分钟内,至少有10000个写操作 - rdbcompression :默认值为:yes ; 是否对日志进行压缩,如果服务器磁盘是ssd,但是cpu比较吃紧,可以配置为no,减少cpu的压力
- dbfilename : 默认值:dump.rdb;快照的存储文件
数据持久化-追加配置
- appendonly :默认值为 no ,不适用append 模式的配置
- appendfilename :默认值:"appendonly.aof",append 模式的日志文件
- appendfsync :默认值:everysec;持久化的频率
- always:每一次写操作都持久化
- everysec:每隔一秒持久化一次(99%的场景都满足)
- no:不持久化
主从配置
- replicaof :默认是注释掉的。配置该服务器要作为哪个服务器的从服务器。正常也不需要配置,当某个服务器启动的时候,如果需要作为从服务器,直接再执行一下该命令即可。
- replica-read-only :默认值:yes;从服务器是否只读。
- repl-diskless-sync-delay :单位:秒,默认值5, 最少异步同步操作的时间
安全配置
- requirepass :默认是注释掉的,即无密码登录;如果配置了远程连接,一般都需要配置密码如:requirepass gaoqijin
ps:这个是指数据交互的密码,而不是连接的密码,只有发送数据的时候才会提示需要验证密码 - rename-command :默认是注释掉,这个主要是为了屏蔽容易误操作导致redis服务器崩溃或者数据丢失或配置安全的。比如在生产上配置了:rename-command FLUSHALL b840fc02d5240
内存配置
- maxmemory : 单位:bytes ,默认注释掉,即可以使用机器的最大剩余内存。
- maxmemory-policy :默认:noeviction;当数据达到最大内存时候,数据该怎么处理
- volatile-lru -> 设置了过期时间的keys中,删除最近最少使用.
- allkeys-lru -> 所有keys中,删除最近最少使用的.
- volatile-lfu -> 设置了过期时间的keys中,最少使用的keys.
- allkeys-lfu ->所有keys中,删除最少使用的.
- volatile-random -> 设置了过期时间的keys中,随机删除keys.
- allkeys-random -> 所有keys中,随机删除keys.
- volatile-ttl -> 最接近到期时间的keys
- noeviction -> 不删除任何数据,操作异常,报错.