Redis配置

Redis配置简介

可以在启动redis-server时指定应该加载的配置文件,方法如下:

$ ./redis-server /path/to/redis.conf

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文件生成的位置

当一个redis-client一直没有请求发向server端,那么server端有权主动关闭这个连接,可以通过timeout来设置“空闲超时时限”,0表示永不关闭。

timeout 0

TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。所以关闭一个连接最长需要120秒的时间。如果设置为0,则不会进行保活检测。

redis支持通过loglevel配置项设置日志等级,共分四级,即debugverbosenoticewarning

redis也支持通过logfile配置项来设置日志文件的生成位置。如果设置为空字符串,则redis会将日志输出到标准输出。假如你在daemon情况下将日志设置为输出到标准输出,则日志会被写到/dev/null中。

对于redis来说,可以设置其数据库的总数量,假如你希望一个redis包含16个数据库,那么设置如下:

databases 16

redis配置-快照

快照,主要涉及的是redisRDB持久化相关的配置

可以用如下的指令来让数据保存到磁盘上,即控制RDB快照功能:

save 900 1 //表示每15分钟且至少有1key改变,就触发一次持久化

save 300 10 //表示每5分钟且至少有10key改变,就触发一次持久化

save 60 10000 //表示每60秒至少有10000key改变,就触发一次持久化

如果你想禁用RDB持久化的策略,只要不设置任何save指令就可以,或者给save传入一个空字符串参数也可以达到相同效果,就像这样:

save ""

对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。

rdbcompression yes

在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消耗,如果你希望获取到最大的性能提升,可以关闭此功能。

rdbchecksum yes

设置快照文件的名称,默认是这样配置的:

dbfilename dump.rdb

设置这个快照文件存放的路径。比如默认设置就是当前文件夹:

dir ./

redis配置-复制

redis提供了主从同步功能。

通过slaveof配置项可以控制某一个redis作为另一个redis的从服务器,通过指定IP和端口来定位到主redis的位置。一般情况下,我们会建议用户为从redis设置一个不同频率的快照持久化的周期,或者为从redis配置一个不同的服务端口等等。

slaveof <masterip> <masterport>

如果主redis设置了验证密码的话(使用requirepass来设置),则在从redis的配置中要使用masterauth来设置校验密码,否则的话,主redis会拒绝从redis的访问请求。

masterauth <master-password>

redis配置-安全

可以要求redis客户端在向redis-server发送请求之前,先进行密码验证。

requirepass zhimakaimen

redis允许我们对redis指令进行更名,比如将一些比较危险的命令改个名字,避免被误执行。比如可以把CONFIG命令改成一个很复杂的名字,这样可以避免外部的调用,同时还可以满足内部调用的需要:

rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c89

甚至可以禁用掉CONFIG命令,那就是把CONFIG的名字改成一个空字符串

rename-command CONFIG ""

redis配置-限制

可以设置redis同时可以与多少个客户端进行连接。默认情况下为10000个客户端。

maxclients 10000

redis配置-追加模式

建议大家,AOF机制和RDB机制可以同时使用,不会有任何冲突。

appendonly yes

appendfilename "appendonly.aof"

appendfsync everysec

redis配置-慢日志

针对慢日志,你可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢日志的长度。当一个新的命令被写入日志时,最老的一条会从命令日志队列中被移除。

单位是微秒,即1000000表示一秒。负数则会禁用慢日志功能,而0则表示强制记录每一个命令。

slowlog-log-slower-than 10000

slowlog-max-len 128

使用*号获取所有配置项

127.0.0.1:6379> config get *

  1) "dbfilename"

  2) "dump.rdb"

  3) "requirepass"

  4) ""

  5) "masterauth"

  6) ""

  7) "unixsocket"

  8) ""

  9) "logfile"

 10) ""

 11) "pidfile"

 12) ""

 13) "slave-announce-ip"

 14) ""

 15) "maxmemory"

 16) "0"

 17) "maxmemory-samples"

 18) "5"

 19) "timeout"

 20) "0"

 21) "auto-aof-rewrite-percentage"

 22) "100"

 23) "auto-aof-rewrite-min-size"

 24) "67108864"

 25) "hash-max-ziplist-entries"

 26) "512"

 27) "hash-max-ziplist-value"

 28) "64"

 29) "list-max-ziplist-size"

 30) "-2"

 31) "list-compress-depth"

 32) "0"

 33) "set-max-intset-entries"

 34) "512"

 35) "zset-max-ziplist-entries"

 36) "128"

 37) "zset-max-ziplist-value"

 38) "64"

 39) "hll-sparse-max-bytes"

 40) "3000"

 41) "lua-time-limit"

 42) "5000"

 43) "slowlog-log-slower-than"

 44) "10000"

 45) "latency-monitor-threshold"

 46) "0"

 47) "slowlog-max-len"

 48) "128"

 49) "port"

 50) "6379"

 51) "tcp-backlog"

 52) "511"

 53) "databases"

 54) "16"

 55) "repl-ping-slave-period"

 56) "10"

 57) "repl-timeout"

 58) "60"

 59) "repl-backlog-size"

 60) "1048576"

 61) "repl-backlog-ttl"

 62) "3600"

 63) "maxclients"

 64) "10000"

 65) "watchdog-period"

 66) "0"

 67) "slave-priority"

 68) "100"

 69) "slave-announce-port"

 70) "0"

 71) "min-slaves-to-write"

 72) "0"

 73) "min-slaves-max-lag"

 74) "10"

 75) "hz"

 76) "10"

 77) "cluster-node-timeout"

 78) "15000"

 79) "cluster-migration-barrier"

 80) "1"

 81) "cluster-slave-validity-factor"

 82) "10"

 83) "repl-diskless-sync-delay"

 84) "5"

 85) "tcp-keepalive"

 86) "300"

 87) "cluster-require-full-coverage"

 88) "yes"

 89) "no-appendfsync-on-rewrite"

 90) "no"

 91) "slave-serve-stale-data"

 92) "yes"

 93) "slave-read-only"

 94) "yes"

 95) "stop-writes-on-bgsave-error"

 96) "yes"

 97) "daemonize"

 98) "no"

 99) "rdbcompression"

100) "yes"

101) "rdbchecksum"

102) "yes"

103) "activerehashing"

104) "yes"

105) "protected-mode"

106) "yes"

107) "repl-disable-tcp-nodelay"

108) "no"

109) "repl-diskless-sync"

110) "no"

111) "aof-rewrite-incremental-fsync"

112) "yes"

113) "aof-load-truncated"

114) "yes"

115) "maxmemory-policy"

116) "noeviction"

117) "loglevel"

118) "notice"

119) "supervised"

120) "no"

121) "appendfsync"

122) "everysec"

123) "syslog-facility"

124) "local0"

125) "appendonly"

126) "no"

127) "dir"

128) "/software/redis-3.2.3/src"

129) "save"

130) "3600 1 300 100 60 10000"

131) "client-output-buffer-limit"

132) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"

133) "unixsocketperm"

134) "0"

135) "slaveof"

136) ""

137) "notify-keyspace-events"

138) ""

139) "bind"

140) ""

127.0.0.1:6379> config get loglevel

1) "loglevel"

2) "notice"

127.0.0.1:6379> config set loglevel "warning"

OK

127.0.0.1:6379> config get loglevel

1) "loglevel"

2) "warning"

info命令所有的section

模块名

模块含义

Server

服务器信息

Clients

客户端信息

Memory

内存信息

Persistence

持久化信息

Stats

全局统计信息

Replication

复制信息

CPU

CPU消耗信息

Commandstats

命令统计信息

Cluster

集群信息

Keyspace

数据库键统计信息

原文地址:https://www.cnblogs.com/allenhu320/p/11339834.html