Chapter3 Redis配置文件
3.1 位置
3.1.1 默认位置
- 默认放在安装目录下(/opt/software/redis-6.0.10/redis.conf)
- 启动时不指定则加载安装目录下的配置及文件
3.1.2 其它位置
- 习惯上在 /uer/local/redis下复制一份,通过该配置文件启动
- 相关可执行文件在 /uer/local/redis/bin 下
3.2 相关配置
3.2.1 include
- 引入配置
- 只需要在配置文件中配置需要的部分,其他部分通过include引入
3.2.2 网络相关配置 NETWORK
- bind: 绑定 IP 地址,其它机器可以通过此 IP 访问 Redis,默认绑定 127.0.0.1, 也可以修改为本机的 IP 地址。
- port:配置 Redis 占用的端口,默认是 6379
- protected-mode:保护模式
- 远程访问:
- bind改为 0.0.0.0
- 注释掉bind,并将保护模式关闭(no)
- tcp-backlog:
- 请求到达后至接受进程处理前的队列
- backlog 队列总和=未完成三次握手队列 + 已完成三次握手队列
- timeout:空闲客户端维持多久关闭,0为永不关闭
3.2.3 常规配置 GENERAL
- daemonize:是非为后台进程(即后台启动)
- pidfile:存放 pid 文件的位置,每个实例会产生一个pid文件
- loglevel:日志级别,开发阶段可以设置成 debug,生产阶段通常设置为 notice 或者 warning
- logfile:指定日志文件名, 如果不指定, Redis 只进行标准输出。
- 要保证日志文件所在的目录必须存在,文件可以不存在。
- 要在 redis 启动时指定所使用的配置文件,否则配置不起作用
- databases: 配置 Redis 数据库的个数,默认是 16 个
3.2.4 安全设置
requirepass: 配置 Redis 的访问密码。默认不配置密码,即访问不需要密码验证。
设置密码需要开启安全模式: protected-mode=yes
使用密码登录客户端: redis-cli -h ip -p 6379 -a pwd
可以通过客户端命令行设置密码,只在内存中起作用
127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" 127.0.0.1:6379> config set requirepass "123456" OK
退出客户端后,再次连接需要输入密码才能执行命令
127.0.0.1:6379> auth 123456 OK
重启服务器后密码失效
3.2.5 客户端相关 CLIENTS
maxclients:最大客户端连接数
maxmemory:设置Redis可以使用的内存量
- 达到上限时,Redis会试图移除内部数据,移除规则通过 maxmemory-policy 指定
- 若无法根据规则移除或设置了不允许移除,则会报错
maxmemory-policy:移除规则
- volatile-lru
- allkeys-lru
- volatile-lfu
- allkeys-lfu
- volatile-random
- allkeys-random
- volatile-ttl
- noeviction
maxmemory-samples:设置样本数量
- LRU算法和TTL算法都是估算值,可以设置样本大小
- 一般 3-7,越小越不准确,性能消耗也越小
3.2.6 RDB
save seconds changes
- 快照触发条件
- 要禁用 Redis 的持久化功能,则把所有的 save 配置都注释掉
stop-writes-on-bgsave-error yes
- 当redis无法写入到磁盘,直接关闭redis的写操作
- 可以保证内存数据和磁盘数据的一致性
rdbcompression yes
- 进行rdb保存时,将文件压缩
- 采用 LZF 算法进行压缩
rdbchecksum yes
- 在存储快照以后, 还可以让 Redis 使用 CRC64 算法来进行数据校验
- 会消耗一定的性能
dbfilename:Redis 持久化数据生成的文件名,默认是 dump.rdb,也可以自己配置
dir: Redis 持久化数据生成文件保存的目录,默认是./即 redis 的启动目录,也可以自己配置
3.2.7 AOF
- appendonly: 配置是否开启 AOF, yes 表示开启, no 表示关闭。默认是 no
- appendfilename: AOF 保存文件名
- appendfsync: AOF 异步持久化策略
- always:同步持久化,每次发生数据变化会立刻写入到磁盘中。性能较差但数据完整性比较好(慢,安全)
- everysec:出厂默认推荐,每秒异步记录一次(默认值)
- no:不即时同步,由操作系统决定何时同步
- no-appendfsync-on-rewrite: 重写时是否可以运用 appendsync,默认 no,可以保证数据的安全
- auto-aof-rewrite-percentage: 设置重写的基准百分比
- auto-aof-rewrite-min-size:设置重写的基准值