一般情況下,Redis組態檔中提供了很多默認的選項,可以不做任何修改而直接使用,本文主要簡述組態檔中常用的配置選項,僅供學習分享使用,如有不足之處,還請指正,
Redis啟動方式
Redis的啟動時,必須有一個組態檔與之相匹配(如:/root/myredis/redis.conf),如下所示:
1 [root@localhost bin]# ./redis-server /root/myredis/redis.conf
Redis組態檔詳解
Redis組態檔項,主要分為以下幾個部分:
- INCLUDES:一個組態檔,可以匯入其他組態檔,
- MODULES:啟動時加載的模塊,
- NETWORK:網路相關配置,
- TLS/SSL:安全傳輸相關模塊,
- GENERAL:通用配置相關,
- SNAPSHOTTING:快照配置相關,
- REPLICATION:主從復制相關配置項,
- KEYS TRACKING:鍵的追蹤相關配置項,
- SECURITY:安全相關配置,
- CLIENTS:客戶端相關配置,
- MEMORY MANAGEMENT:記憶體管理相關配置項,
- LAZY FREEING:延遲釋放配置項,
- THREADED I/O:多執行緒I/O相關配置項,
- KERNEL OOM CONTROL:Linux內核防止記憶體占用過大配置選項,
- APPEND ONLY MODE:資料持久化追加模式,
- LUA SCRIPTING:Lua腳本相關配置項,
- REDIS CLUSTER:Redis集群相關配置項,
- CLUSTER DOCKER/NAT support:Docker/Nat集群支持配置項,
- SLOW LOG:耗時日志,
- LATENCY MONITOR:延遲監控配置相關選項,
- EVENT NOTIFICATION:事件通知相關配置項,
- GOPHER SERVER:Gopher服務器,
- ADVANCED CONFIG:高級配置,
- ACTIVE DEFRAGMENTATION:活動碎片整理相關配置,
說明:Redis組態檔,以# 開頭,表示注釋或者說明;如啟用,則將#去掉即可,
INCLUDES
如果redis啟動時有一個標準的配置模板,但是又需要自定義每一個實體的相關配置,則可以采用include 組態檔的方式匯入,默認不需要匯入檔案,則此處是注釋的,如下所示:
1 # include /path/to/local.conf 2 # include /path/to/other.conf
MODULES
啟動時加載需要啟動的模塊,默認不需要啟動,所以也是注釋的,如下所示:
1 # loadmodule /path/to/my_module.so 2 # loadmodule /path/to/other_module.so
NETWORK
NETWORK主要用于配置網路相關的項,具體如下所示:
bind配置可以訪問的ip地址,可以配置多個,一般建議局域網內部ip,如果是在internet下運行redis,并系結了所有的ip地址,則是非常危險的操作,
如果需要所有ip都可以訪問,則可以注釋掉下面的陳述句,如下所示:
1 # Examples: 2 # 3 # bind 192.168.1.100 10.0.0.1 4 # bind 127.0.0.1 ::1 5 6 bind 127.0.0.1
port指定redis啟動時的埠號,默認6379,不建議使用1000以下的埠號,因為容易與作業系統埠號引起沖突,如下所示:
1 # Accept connections on the specified port, default is 6379 (IANA #815344). 2 # If port 0 is specified Redis will not listen on a TCP socket. 3 port 6379
tcp-backlog配置完整連接佇列的大小,默認511,但是此值一般不能大于/proc/sys/net/core/somaxconn 配置的值,如下所示:
1 # In high requests-per-second environments you need a high backlog in order 2 # to avoid slow clients connection issues. Note that the Linux kernel 3 # will silently truncate it to the value of /proc/sys/net/core/somaxconn so 4 # make sure to raise both the value of somaxconn and tcp_max_syn_backlog 5 # in order to get the desired effect. 6 tcp-backlog 511
關于/proc/sys/net/core/somaxconn的值,如下所示:
1 [root@localhost bin]# cat /proc/sys/net/core/somaxconn 2 128
timeout設定超時時間,用于設定客戶端多久沒連接則斷開連接人時間,0表示失效,如下所示:
1 # Close the connection after a client is idle for N seconds (0 to disable) 2 timeout 0
tcp-keepalive設定保持連接時長,超過時間,則發送TCP ACK到客戶端,如下所示:
1 # A reasonable value for this option is 300 seconds, which is the new 2 # Redis default starting with Redis 3.2.1. 3 tcp-keepalive 300
GENERAL
daemonize用于配置redis是否以守護行程運行,默認為no,啟動時會單獨啟動一個視窗,當視窗關閉時,redis行程結束,所以為了讓redis在后臺運行,需要將此項改為yes,如下所示:
1 # By default Redis does not run as a daemon. Use 'yes' if you need it. 2 # Note that Redis will write a pid file in /var/run/redis.pid when daemonized. 3 daemonize yes
pidfile配置行程檔案,當redis以守護進行啟動時,會在啟動時生成,關閉時洗掉啟動檔案,如下所示:
1 # If a pid file is specified, Redis writes it where specified at startup 2 # and removes it at exit. 3 # 4 # When the server runs non daemonized, no pid file is created if none is 5 # specified in the configuration. When the server is daemonized, the pid file 6 # is used even if not specified, defaulting to "/var/run/redis.pid". 7 # 8 # Creating a pid file is best effort: if Redis is not able to create it 9 # nothing bad happens, the server will start and run normally. 10 pidfile /var/run/redis_6379.pid
loglevel日志等級,共四種等級:debug,verbose,notice,warning默認為notice,如下所示:
1 # Specify the server verbosity level. 2 # This can be one of: 3 # debug (a lot of information, useful for development/testing) 4 # verbose (many rarely useful info, but not a mess like the debug level) 5 # notice (moderately verbose, what you want in production probably) 6 # warning (only very important / critical messages are logged) 7 loglevel notice
logfile日志檔案配置,默認為空,則不記錄日志,如下所示:
1 # Specify the log file name. Also the empty string can be used to force 2 # Redis to log on the standard output. Note that if you use standard 3 # output for logging but daemonize, logs will be sent to /dev/null 4 logfile ""
syslog-enabled是否記錄系統日志,默認不記錄,如下所示:
1 # To enable logging to the system logger, just set 'syslog-enabled' to yes, 2 # and optionally update the other syslog parameters to suit your needs. 3 # syslog-enabled no 4 5 # Specify the syslog identity. 6 # syslog-ident redis 7 8 # Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7. 9 # syslog-facility local0
databases資料庫個數,redis默認共有16個資料庫,默認是0,如下所示:
1 # Set the number of databases. The default database is DB 0, you can select 2 # a different one on a per-connection basis using SELECT <dbid> where 3 # dbid is a number between 0 and 'databases'-1 4 databases 16
always-show-logo設定logo是否顯示,默認為yes,如下所示:
1 # By default Redis shows an ASCII art logo only when started to log to the 2 # standard output and if the standard output is a TTY. Basically this means 3 # that normally a logo is displayed only in interactive sessions. 4 # 5 # However it is possible to force the pre-4.0 behavior and always show a 6 # ASCII art logo in startup logs by setting the following option to yes. 7 always-show-logo yes
SNAPSHOTTING
快照主要用于將記憶體中的資料保存到硬碟上,
save命令,配置多久保存一次,可以設定多種模式,如下所示:
1 # Save the DB on disk: 2 # 3 # save <seconds> <changes> 4 # 5 # Will save the DB if both the given number of seconds and the given 6 # number of write operations against the DB occurred. 7 # 8 # In the example below the behavior will be to save: 9 # after 900 sec (15 min) if at least 1 key changed 10 # after 300 sec (5 min) if at least 10 keys changed 11 # after 60 sec if at least 10000 keys changed 12 13 save 900 1 14 save 300 10 15 save 60 10000
stop-writes-on-bgsave-error 當正在保存或者錯誤時,是否停止寫入,默認為yes,如下所示:
1 # However if you have setup your proper monitoring of the Redis server 2 # and persistence, you may want to disable this feature so that Redis will 3 # continue to work as usual even if there are problems with disk, 4 # permissions, and so forth. 5 stop-writes-on-bgsave-error yes
rdbcompression 快照檔案是否壓縮,如果不壓縮,則資料庫檔案將會很大,如下所示:
1 # Compress string objects using LZF when dump .rdb databases? 2 # By default compression is enabled as it's almost always a win. 3 # If you want to save some CPU in the saving child set it to 'no' but 4 # the dataset will likely be bigger if you have compressible values or keys. 5 rdbcompression yes
dbfilename資料庫檔案名,默認為dump.rdb,如下所示:
1 # The filename where to dump the DB 2 dbfilename dump.rdb
dir資料庫檔案的保存目錄,如下所示:
1 # The working directory. 2 # 3 # The DB will be written inside this directory, with the filename specified 4 # above using the 'dbfilename' configuration directive. 5 # 6 # The Append Only File will also be created inside this directory. 7 # 8 # Note that you must specify a directory here, not a file name. 9 dir ./
SECURITY
requirepass設定默認用戶登錄的密碼,默認無密碼,如下所示:
1 # IMPORTANT NOTE: starting with Redis 6 "requirepass" is just a compatibility 2 # layer on top of the new ACL system. The option effect will be just setting 3 # the password for the default user. Clients will still authenticate using 4 # AUTH <password> as usually, or more explicitly with AUTH default <password> 5 # if they follow the new protocol: both will work. 6 # 7 # requirepass foobared
CLIENTS
maxclients同一時間允許連接的最大客戶端數,如下所示:
1 # Set the max number of connected clients at the same time. By default 2 # this limit is set to 10000 clients, however if the Redis server is not 3 # able to configure the process file limit to allow for the specified limit 4 # the max number of allowed clients is set to the current file limit 5 # minus 32 (as Redis reserves a few file descriptors for internal uses). 6 # 7 # Once the limit is reached Redis will close all the new connections sending 8 # an error 'max number of clients reached'. 9 # 10 # maxclients 10000
當配置redis集群時,redis連接數和集群總線共享,
Redis命令模式配置
redis除了可以通過修改組態檔的方式變更配置項,也可以通過客戶端進行修改,示例如下:
config get * 用于獲取所有的配置項,如下所示:
1 127.0.0.1:6379> config get * 2 1) "rdbchecksum" 3 2) "yes" 4 3) "daemonize" 5 4) "yes" 6 5) "io-threads-do-reads" 7 6) "no" 8 7) "lua-replicate-commands" 9 8) "yes" 10 9) "always-show-logo" 11 10) "yes" 12 11) "protected-mode" 13 12) "yes" 14 13) "rdbcompression" 15 14) "yes" 16 15) "rdb-del-sync-files" 17 16) "no" 18 17) "activerehashing" 19 18) "yes" 20 19) "stop-writes-on-bgsave-error" 21 20) "yes" 22 21) "dynamic-hz" 23 22) "yes" 24 23) "lazyfree-lazy-eviction" 25 24) "no" 26 25) "lazyfree-lazy-expire" 27 26) "no" 28 27) "lazyfree-lazy-server-del" 29 28) "no" 30 29) "lazyfree-lazy-user-del" 31 30) "no" 32 31) "repl-disable-tcp-nodelay" 33 32) "no" 34 33) "repl-diskless-sync" 35 34) "no" 36 35) "gopher-enabled" 37 36) "no" 38 37) "aof-rewrite-incremental-fsync" 39 38) "yes" 40 39) "no-appendfsync-on-rewrite" 41 40) "no" 42 41) "cluster-require-full-coverage" 43 42) "yes" 44 43) "rdb-save-incremental-fsync" 45 44) "yes" 46 45) "aof-load-truncated" 47 46) "yes" 48 47) "aof-use-rdb-preamble" 49 48) "yes" 50 49) "cluster-replica-no-failover" 51 50) "no" 52 51) "cluster-slave-no-failover" 53 52) "no" 54 53) "replica-lazy-flush" 55 54) "no" 56 55) "slave-lazy-flush" 57 56) "no" 58 57) "replica-serve-stale-data" 59 58) "yes" 60 59) "slave-serve-stale-data" 61 60) "yes" 62 61) "replica-read-only" 63 62) "yes" 64 63) "slave-read-only" 65 64) "yes" 66 65) "replica-ignore-maxmemory" 67 66) "yes" 68 67) "slave-ignore-maxmemory" 69 68) "yes" 70 69) "jemalloc-bg-thread" 71 70) "yes" 72 71) "activedefrag" 73 72) "no" 74 73) "syslog-enabled" 75 74) "no" 76 75) "cluster-enabled" 77 76) "no" 78 77) "appendonly" 79 78) "no" 80 79) "cluster-allow-reads-when-down" 81 80) "no" 82 81) "oom-score-adj" 83 82) "no" 84 83) "aclfile" 85 84) "" 86 85) "unixsocket" 87 86) "" 88 87) "pidfile" 89 88) "/var/run/redis_6379.pid" 90 89) "replica-announce-ip" 91 90) "" 92 91) "slave-announce-ip" 93 92) "" 94 93) "masteruser" 95 94) "" 96 95) "masterauth" 97 96) "" 98 97) "cluster-announce-ip" 99 98) "" 100 99) "syslog-ident" 101 100) "redis" 102 101) "dbfilename" 103 102) "dump.rdb" 104 103) "appendfilename" 105 104) "appendonly.aof" 106 105) "server_cpulist" 107 106) "" 108 107) "bio_cpulist" 109 108) "" 110 109) "aof_rewrite_cpulist" 111 110) "" 112 111) "bgsave_cpulist" 113 112) "" 114 113) "supervised" 115 114) "no" 116 115) "syslog-facility" 117 116) "local0" 118 117) "repl-diskless-load" 119 118) "disabled" 120 119) "loglevel" 121 120) "notice" 122 121) "maxmemory-policy" 123 122) "noeviction" 124 123) "appendfsync" 125 124) "everysec" 126 125) "databases" 127 126) "16" 128 127) "port" 129 128) "6379" 130 129) "io-threads" 131 130) "1" 132 131) "auto-aof-rewrite-percentage" 133 132) "100" 134 133) "cluster-replica-validity-factor" 135 134) "10" 136 135) "cluster-slave-validity-factor" 137 136) "10" 138 137) "list-max-ziplist-size" 139 138) "-2" 140 139) "tcp-keepalive" 141 140) "300" 142 141) "cluster-migration-barrier" 143 142) "1" 144 143) "active-defrag-cycle-min" 145 144) "1" 146 145) "active-defrag-cycle-max" 147 146) "25" 148 147) "active-defrag-threshold-lower" 149 148) "10" 150 149) "active-defrag-threshold-upper" 151 150) "100" 152 151) "lfu-log-factor" 153 152) "10" 154 153) "lfu-decay-time" 155 154) "1" 156 155) "replica-priority" 157 156) "100" 158 157) "slave-priority" 159 158) "100" 160 159) "repl-diskless-sync-delay" 161 160) "5" 162 161) "maxmemory-samples" 163 162) "5" 164 163) "timeout" 165 164) "0" 166 165) "replica-announce-port" 167 166) "0" 168 167) "slave-announce-port" 169 168) "0" 170 169) "tcp-backlog" 171 170) "511" 172 171) "cluster-announce-bus-port" 173 172) "0" 174 173) "cluster-announce-port" 175 174) "0" 176 175) "repl-timeout" 177 176) "60" 178 177) "repl-ping-replica-period" 179 178) "10" 180 179) "repl-ping-slave-period" 181 180) "10" 182 181) "list-compress-depth" 183 182) "0" 184 183) "rdb-key-save-delay" 185 184) "0" 186 185) "key-load-delay" 187 186) "0" 188 187) "active-expire-effort" 189 188) "1" 190 189) "hz" 191 190) "10" 192 191) "min-replicas-to-write" 193 192) "0" 194 193) "min-slaves-to-write" 195 194) "0" 196 195) "min-replicas-max-lag" 197 196) "10" 198 197) "min-slaves-max-lag" 199 198) "10" 200 199) "maxclients" 201 200) "10000" 202 201) "active-defrag-max-scan-fields" 203 202) "1000" 204 203) "slowlog-max-len" 205 204) "128" 206 205) "acllog-max-len" 207 206) "128" 208 207) "lua-time-limit" 209 208) "5000" 210 209) "cluster-node-timeout" 211 210) "15000" 212 211) "slowlog-log-slower-than" 213 212) "10000" 214 213) "latency-monitor-threshold" 215 214) "0" 216 215) "proto-max-bulk-len" 217 216) "536870912" 218 217) "stream-node-max-entries" 219 218) "100" 220 219) "repl-backlog-size" 221 220) "1048576" 222 221) "maxmemory" 223 222) "0" 224 223) "hash-max-ziplist-entries" 225 224) "512" 226 225) "set-max-intset-entries" 227 226) "512" 228 227) "zset-max-ziplist-entries" 229 228) "128" 230 229) "active-defrag-ignore-bytes" 231 230) "104857600" 232 231) "hash-max-ziplist-value" 233 232) "64" 234 233) "stream-node-max-bytes" 235 234) "4096" 236 235) "zset-max-ziplist-value" 237 236) "64" 238 237) "hll-sparse-max-bytes" 239 238) "3000" 240 239) "tracking-table-max-keys" 241 240) "1000000" 242 241) "repl-backlog-ttl" 243 242) "3600" 244 243) "auto-aof-rewrite-min-size" 245 244) "67108864" 246 245) "logfile" 247 246) "" 248 247) "client-query-buffer-limit" 249 248) "1073741824" 250 249) "watchdog-period" 251 250) "0" 252 251) "dir" 253 252) "/usr/local/redis/bin" 254 253) "save" 255 254) "900 1 300 10 60 10000" 256 255) "client-output-buffer-limit" 257 256) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60" 258 257) "unixsocketperm" 259 258) "0" 260 259) "slaveof" 261 260) "" 262 261) "notify-keyspace-events" 263 262) "" 264 263) "bind" 265 264) "127.0.0.1" 266 265) "requirepass" 267 266) "" 268 267) "oom-score-adj-values" 269 268) "0 200 800"View Code
config get setting-name,獲取單獨的配置項,如loglevel,如下所示:
1 127.0.0.1:6379> config get loglevel 2 1) "loglevel" 3 2) "notice" 4 127.0.0.1:6379>
config set setting-name setting-value的格式來設定項,如下所示:
1 127.0.0.1:6379> config set loglevel verbose 2 OK 3 127.0.0.1:6379> config get loglevel 4 1) "loglevel" 5 2) "verbose" 6 127.0.0.1:6379>
本文主要簡述常見配置,更多配置,可參考菜鳥教程,
備注
洞仙歌·冰肌玉骨
朝代:宋朝|作者:蘇軾
仆七歲時,見眉州老尼,姓朱,忘其名,年九十歲,自言嘗隨其師入蜀主孟昶宮中,一日大熱,蜀主與花蕊夫人夜納涼摩訶池上,作一詞,朱具能記之, 今四十年,朱已死久矣,人無知此詞者,但記其首兩句,暇日尋味,豈《洞仙歌》令乎?乃為足之云, 冰肌玉骨,自清涼無汗, 水殿風來暗香滿, 繡簾開,一點明月窺人,人未寢,欹(qī)枕釵橫鬢亂, 起來攜素手,庭戶無聲,時見疏星渡河漢, 試問夜如何? 夜已三更,金波淡,玉繩低轉, 但屈指西風幾時來, 又不道流年暗中偷換,轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/249776.html
標籤:其他
上一篇:SQL LEN()函式用法
