# Redis示例配置文件
# 注意单位问题:当需要设置内存大小的时候,可以使用类似1k、5GB、4M这样的常见格式:
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 单位是大小写不敏感的,所以1GB 1Gb 1gB的写法都是完全一样的。
# Redis默认是不作为守护进程来运行的。你可以把这个设置为"yes"让它作为守护进程来运行。
# 注意,当作为守护进程的时候,Redis会把进程ID写到 /var/run/redis.pid
daemonize no
# 当以守护进程方式运行的时候,Redis会把进程ID默认写到 /var/run/redis.pid。你可以在这里修改路径。
pidfile /var/run/redis.pid
# 接受连接的特定端口,默认是6379。
# 如果端口设置为0,Redis就不会监听TCP套接字。
port 6379
# 如果你想的话,你可以绑定单一接口;如果这里没单独设置,那么所有接口的连接都会被监听。
#
# bind 127.0.0.1
# 指定用来监听连接的unxi套接字的路径。这个没有默认值,所以如果你不指定的话,Redis就不会通过unix套接字来监听。
#
# unixsocket /tmp/redis.sock
# unixsocketperm 755
#一个客户端空闲多少秒后关闭连接。(0代表禁用,永不关闭)
timeout 0
# 设置服务器调试等级。
# 可能值:
# debug (很多信息,对开发/测试有用)
# verbose (很多精简的有用信息,但是不像debug等级那么多)
# notice (适量的信息,基本上是你生产环境中需要的程度)
# warning (只有很重要/严重的信息会记录下来)
loglevel verbose
# 指明日志文件名。也可以使用"stdout"来强制让Redis把日志信息写到标准输出上。
# 注意:如果Redis以守护进程方式运行,而你设置日志显示到标准输出的话,那么日志会发送到 /dev/null
logfile stdout
# 要使用系统日志记录器很简单,只要设置 "syslog-enabled" 为 "yes" 就可以了。
# 然后根据需要设置其他一些syslog参数就可以了。
# syslog-enabled no
# 指明syslog身份
# syslog-ident redis
# 指明syslog的设备。必须是一个用户或者是 LOCAL0 ~ LOCAL7 之一。
# syslog-facility local0
# 设置数据库个数。默认数据库是 DB 0,你可以通过SELECT <dbid> WHERE dbid(0~'databases' - 1)来为每个连接使用不同的数据库。
databases 16
################################ 快照 #################################
#
# 把数据库存到磁盘上:
#
# save <seconds> <changes>
#
# 会在指定秒数和数据变化次数之后把数据库写到磁盘上。
#
# 下面的例子将会进行把数据写入磁盘的操作:
# 900秒(15分钟)之后,且至少1次变更
# 300秒(5分钟)之后,且至少10次变更
# 60秒之后,且至少10000次变更
#
# 注意:你要想不写磁盘的话就把所有 "save" 设置注释掉就行了。
save 900 1
save 300 10
save 60 10000
# 当导出到 .rdb 数据库时是否用LZF压缩字符串对象。
# 默认设置为 "yes",所以几乎总是生效的。
# 如果你想节省CPU的话你可以把这个设置为 "no",但是如果你有可压缩的key的话,那数据文件就会更大了。
rdbcompression yes
# 数据库的文件名
dbfilename dump.rdb
# 工作目录
#
# 数据库会写到这个目录下,文件名就是上面的 "dbfilename" 的值。
#
# 累加文件也放这里。
#
# 注意你这里指定的必须是目录,不是文件名。
dir ./
################################# 同步 #################################
#
# 主从同步。通过 slaveof 配置来实现Redis实例的备份。
# 注意,这里是本地从远端复制数据。也就是说,本地可以有不同的数据库文件、绑定不同的IP、监听不同的端口。
#
# slaveof <masterip> <masterport>
# 如果master设置了密码(通过下面的 "requirepass" 选项来配置),那么slave在开始同步之前必须进行身份验证,否则它的同步请求会被拒绝。
#
# masterauth <master-password>
# 当一个slave失去和master的连接,或者同步正在进行中,slave的行为有两种可能:
#
# 1) 如果 slave-serve-stale-data 设置为 "yes" (默认值),slave会继续响应客户端请求,可能是正常数据,也可能是还没获得值的空数据。
# 2) 如果 slave-serve-stale-data 设置为 "no",slave会回复"正在从master同步(SYNC with master in progress)"来处理各种请求,除了 INFO 和 SLAVEOF 命令。
#
slave-serve-stale-data yes