学习redis有一段时间了,踩过了不少坑,最后发现都是大多数问题都是配置文件的参数等设置引起的,今天好好整理了下redis.conf和redis-sentinel.conf配置文件中各配置项的详细解释说明。
一、redis.conf 配置项如下:
1. daemonize noRedis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
2. pidfile /var/run/redis_6379.pid
当Redis以守护进程方式运行时,即使该项没有配置,Redis也会默认把pid写入/var/run/redis.pid文件;而当Redis不是以守护进程凡是运行时,若该项没有配置,则redis不会创建pid文件。创建pid文件是尝试性的动作,即使创建写入失败,redis依然可以启动运行
3.port 6379
指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字
4.bind 127.0.0.1
绑定的主机地址
5.timeout 300
当 客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
6.loglevel verbose
指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose
7.logfile ""
日志记录方式,配置空字符串强制让日志打到标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null
8.databases 16
设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
9 save <seconds> <changes>
指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
10. stop-writes-on-bgsave-error yes
如果以RDB的方式持久化数据时出错了,redis默认将不接收写入操作,以便让应用层感知出现问题了,配置为no禁用;
11.rdbcompression yes
指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大
12.dbfilename dump.rdb
指定本地数据库文件名,默认值为dump.rdb