概述
redis一般启动必须有配置文件
下载的redis压缩包中,配置文件在解压文件夹里 redis.conf
如果是docker redis,需要通过下面命令进行下载:
wget http://download.redis.io/redis-stable/redis.conf
初始化配置
daemonize 守护进程
daemonize 守护进程默认为no,即:不是守护进程,意思是:前台进程,如下:
daemonize no
注意:
在docker中,此项必须为
no,因为docker容器必须要有一个前台进程才能留存正常运行redis,应改为
daemonize yes,即:开启守护进程,关闭窗口也能运行
绑定ip
允许外部ip访问redis
注释掉下面行,允许外部ip访问redis
# bind 127.0.0.1
protected-mode 保护模式(慎重)
redis3.2版本后新增protected-mode配置,默认是yes,即开启保护模式。设置外部网络连接redis服务,设置方式如下:
开启protected-mode保护模式,那么需配置bind ip、设置访问密码,否则只允许本机访问
关闭protected-mode模式,不设置密码 外部网络也可以直接访问
此时可能会遭受攻击,致使key全部删除
appendonly
开启持久化
appendonly yes
port端口
port 6379
内存管理
maxmemory
最大内存
# maxmemory <bytes>
注意: 使用内存达到上限,redis试图清理缓存数据,清理规则由maxmemory-policy设置
注意: 使用内存达到上限,无法清理缓存时,当使用类似set、lpush指令时,返回错误信息
maxmemory-policy 缓存过期策略
# maxmemory-policy noeviction
详见:
https://www.malaoshi.top/show_1EF5nwc393bJ.html
日志相关配置
loglevel
4个日志级别:
- debug (适用于开发或测试阶段)
- verbose (many rarely useful info, but not a mess like the debug level)
- notice (适用于生产环境)
- warning (仅仅一些重要的消息被记录)
loglevel notice
logfile
日志文件位置
logfile ""
注意:
设置log文件时,所在文件夹、日志文件 必须存在,因为redis6无法创建文件夹和log文件。
创建log文件后,还需修改权限,否则无权修改该文件
修改权限命令:
chmod 666 redis.log
syslog-enabled
是否将redis日志输送到linux系统日志服务中
# syslog-enabled no
syslog-ident
系统日志的标志
# syslog-ident redis
syslog-facility
输出系统日志的设备
必须是 USER 或者是 LOCAL0-LOCAL7 之间的值。
# syslog-facility local0
其他
这里的配置一般不用修改,默认就好
16个数据库
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
pidfile
存放pid文件的位置,每个实例会产生一个不同的pid文件
linux程序一般都会有该文件,表示进程
requirepass 设置永久密码
取消下面注释,可设置密码,foobared就是密码
# requirepass foobared
maxclient 最大客户端连接数
# maxclients 10000
timeout
client 空闲多少秒之后关闭连接(0 不启用,一般为0)
tcp-keepalive
对客户端心跳检测
如果设置为非零,当与客户端没有通讯时,每隔n秒,使用 SO_KEEPALIVE 发送 tcp acks 给客户端。
Redis 3.2.1.以后推荐300秒
tcp-keepalive 300