redis初学者你有福了—带你进入Redis不一样的世界( 七 )


 
127.0.0.1:6379> exec //触发EXEC
 
(nil) //事务无法被执行
??【教你看懂redis配置 – 简介】

redis初学者你有福了—带你进入Redis不一样的世界

文章插图
 
我们可以在启动redis-server时指定应该加载的配置文件 , 方法如下:
$ ./redis-server /path/to/redis.conf
接下来 , 我们就来讲解下redis配置文件的各个配置项的含义 , 注意 , 本文是基于redis-2.8.4版本进行讲解的 。
redis官方提供的redis.conf文件 , 足有700+行 , 其中100多行为有效配置行 , 另外的600多行为注释说明 。
在配置文件的开头部分 , 首先明确了一些度量单位:
# 1k => 1000 bytes
 
# 1kb => 1024 bytes
 
# 1m => 1000000 bytes
 
# 1mb => 1024*1024 bytes
 
# 1g => 1000000000 bytes
 
# 1gb => 1024*1024*1024 bytes
可以看出 , redis配置中对单位的大小写不敏感 , 1GB、1Gb和1gB都是相同的 。由此也说明 , redis只支持bytes , 不支持bit单位 。
redis支持“主配置文件中引入外部配置文件” , 很像C/C++中的include指令 , 比如:
include /path/to/other.conf
如果你看过redis的配置文件 , 会发现还是很有条理的 。redis配置文件被分成了几大块区域 , 它们分别是:
1.通用(general)
2.快照(snapshotting)
3.复制(replication)
4.安全(security)
5.限制(limits)
6.追加模式(append only mode)
7.LUA脚本(lua scripting)
8.慢日志(slow log)
9.事件通知(event notification)
下面我们就来逐一讲解 。
【教你看懂redis配置 -通用】
默认情况下 , redis并不是以daemon形式来运行的 。通过daemonize配置项可以控制redis的运行形式 , 如果改为yes , 那么redis就会以daemon形式运行:
daemonize no
当以daemon形式运行时 , redis会生成一个pid文件 , 默认会生成在/var/run/redis.pid 。当然 , 你可以通过pidfile来指定pid文件生成的位置 , 比如:
pidfile /path/to/redis.pid
默认情况下 , redis会响应本机所有可用网卡的连接请求 。当然 , redis允许你通过bind配置项来指定要绑定的IP , 比如:
bind 192.168.1.2 10.8.4.2
redis的默认服务端口是6379 , 你可以通过port配置项来修改 。如果端口设置为0的话 , redis便不会监听端口了 。
port 6379
有些同学会问“如果redis不监听端口 , 还怎么与外界通信呢” , 其实redis还支持通过unix socket方式来接收请求 。可以通过unixsocket配置项来指定unix socket文件的路径 , 并通过unixsocketperm来指定文件的权限 。
unixsocket /tmp/redis.sock
 
unixsocketperm 755
当一个redis-client一直没有请求发向server端 , 那么server端有权主动关闭这个连接 , 可以通过timeout来设置“空闲超时时限” , 0表示永不关闭 。
timeout 0
TCP连接保活策略 , 可以通过tcp-keepalive配置项来进行设置 , 单位为秒 , 假如设置为60秒 , 则server端会每60秒向连接空闲的客户端发起一次ACK请求 , 以检查客户端是否已经挂掉 , 对于无响应的客户端则会关闭其连接 。所以关闭一个连接最长需要120秒的时间 。如果设置为0 , 则不会进行保活检测 。
tcp-keepalive 0
redis支持通过loglevel配置项设置日志等级 , 共分四级 , 即debug、verbose、notice、warning 。
loglevel notice
redis也支持通过logfile配置项来设置日志文件的生成位置 。如果设置为空字符串 , 则redis会将日志输出到标准输出 。假如你在daemon情况下将日志设置为输出到标准输出 , 则日志会被写到/dev/null中 。
logfile ""
如果希望日志打印到syslog中 , 也很容易 , 通过syslog-enabled来控制 。另外 , syslog-ident还可以让你指定syslog里的日志标志 , 比如:


推荐阅读