1ã€include 解释:引入其它é…ç½®æ–‡ä»¶ã€‚æ¯”å¦‚è¯´å½“ä½ æœ‰å¤šä¸ªserver,而有一些é…ç½®é¡¹æ˜¯å®ƒä»¬å…¬ç”¨çš„ï¼Œé‚£ä¹ˆä½ å¯ä»¥å°†è¿™äº›å…¬ç”¨çš„é…置项写进一个é…置文件common.conf里,然åŽè¿™äº›serverå†include这个é…置文件,这些server自己的é…置项则分别写在自己的é…置文件里。 示例:include /path/to/common.conf 2ã€loadmodule 解释:æ¤é…ç½®é¡¹å°šæœªäº†è§£ã€‚æ³¨é‡Šæ˜¯è¿™æ ·çš„ï¼šå¯åŠ¨æ—¶åŠ è½½æ¨¡å—,如果serveræ— æ³•åŠ è½½æ¨¡å—,则æ¤é…置会被忽略。å¯ä»¥ä½¿ç”¨å¤šä¸ªloadmodule。 示例:loadmodule /path/to/my_module.so 3ã€bind 解释:默认情况下,redis 在 server 上所有有效的网络接å£ä¸Šç›‘å¬å®¢æˆ·ç«¯è¿žæŽ¥ã€‚å¦‚æžœåªæƒ³è®©å®ƒåœ¨ä¸€ä¸ªæˆ–多个网络接å£ä¸Šç›‘å¬ï¼Œé‚£ä½ 就绑定一个IP或者多个IP。多个ipç©ºæ ¼åˆ†éš”å³å¯ã€‚ 示例: bind 192.168.1.100 10.0.0.1 bind 127.0.0.1 ::1 4ã€protected-mode 解释:当开å¯åŽï¼Œç¦æ¢å…¬ç½‘访问redis。它å¯ç”¨çš„æ¡ä»¶æœ‰ä¸¤ä¸ªï¼Œç¬¬ä¸€æ˜¯æ²¡æœ‰ä½¿ç”¨bind,第二是没有设置访问密ç 。 示例:protected-mode yes 5ã€port 解释:指定该redis server监å¬çš„端å£å·ã€‚默认是6379,如果指定0则ä¸ç›‘å¬ã€‚ 示例:port 6379 6ã€tcp-backlog 解释:æ¤å‚数确定了TCP连接ä¸å·²å®Œæˆé˜Ÿåˆ—(完æˆä¸‰æ¬¡æ¡æ‰‹ä¹‹åŽ)的长度, 当然æ¤å€¼å¿…é¡»ä¸å¤§äºŽLinux系统定义的/proc/sys/net/core/somaxconn值,默认是511,而Linuxçš„é»˜è®¤å‚æ•°å€¼æ˜¯128。当系统并å‘é‡å¤§å¹¶ä¸”客户端速度缓慢的时候,å¯ä»¥å°†è¿™äºŒä¸ªå‚数一起å‚考设定。 示例:tcp-backlog 511 7ã€unixsocket 解释:指定 unix socket 的路径。 示例:unixsocket /tmp/redis.sock 8ã€unixsocketperm 解释:指定 unix socket file çš„æƒé™ã€‚ 示例:unixsocketperm 755 9ã€timeout 解释:当客户端闲置多少秒åŽå…³é—连接,如果设置为0表示关é—该功能。 示例:timeout 30 10ã€tcp-keepalive 解释:å•使˜¯ç§’,表示将周期性的使用SO_KEEPALIVE检测客户端是å¦è¿˜å¤„于å¥åº·çжæ€ï¼Œé¿å…æœåŠ¡å™¨ä¸€ç›´é˜»å¡žï¼Œå®˜æ–¹ç»™å‡ºçš„å»ºè®®å€¼æ˜¯300S 示例:tcp-keepalive 300 11ã€daemonize 解释:是å¦ä»¥å®ˆæŠ¤æ¨¡å¼å¯åŠ¨ï¼Œé»˜è®¤ä¸ºno,é…置为yes时以守护模å¼å¯åŠ¨ï¼Œè¿™æ—¶redis instance会将进程å·pid写入默认文件/var/run/redis.pid。 示例:daemonize yes 12ã€supervised 解释:å¯ä»¥é€šè¿‡upstartå’Œsystemd管ç†Rediså®ˆæŠ¤è¿›ç¨‹ï¼Œè¿™ä¸ªå‚æ•°æ˜¯å’Œå…·ä½“çš„æ“作系统相关的。 示例:supervised no 13ã€pidfile 解释:é…ç½®pid文件路径。当redis以守护模å¼å¯åŠ¨æ—¶ï¼Œå¦‚æžœæ²¡æœ‰é…ç½®pidfile,pidfile默认值是/var/run/redis.pid 。 示例:pidfile /var/run/redis_6379.pid 14ã€loglevel 解释:日志级别。å¯é€‰é¡¹æœ‰ï¼šdebugï¼ˆè®°å½•å¤§é‡æ—¥å¿—ä¿¡æ¯ï¼Œé€‚用于开å‘ã€æµ‹è¯•阶段); verbose(较多日志信æ¯ï¼‰ï¼› noticeï¼ˆé€‚é‡æ—¥å¿—ä¿¡æ¯ï¼Œä½¿ç”¨äºŽç”Ÿäº§çŽ¯å¢ƒï¼‰ï¼›warning(仅有部分é‡è¦ã€å…³é”®ä¿¡æ¯æ‰ä¼šè¢«è®°å½•)。 示例:loglevel notice 15ã€logfile 解释:日志文件的ä½ç½®ï¼Œå½“指定为空å—ç¬¦ä¸²æ—¶ï¼Œä¸ºæ ‡å‡†è¾“å‡ºï¼Œå¦‚æžœredis已守护进程模å¼è¿è¡Œï¼Œé‚£ä¹ˆæ—¥å¿—将会输出到 /dev/null 。 示例:logfile "" 16ã€syslog-enabled è§£é‡Šï¼šæ˜¯å¦æŠŠæ—¥å¿—è®°å½•åˆ°ç³»ç»Ÿæ—¥å¿—ã€‚ï¼ˆä½•æ„?) 示例:syslog-enabled no 17ã€syslog-ident 解释:设置系统日志的id 示例:syslog-ident redis 18ã€syslog-facility 解释:指定syslog设备(facility),必须是user或则local0到local7。 示例:syslog-facility local0 19ã€databases 解释:设置数æ®åº“的数目。默认的数æ®åº“是DB 0 ,å¯ä»¥åœ¨æ¯ä¸ªè¿žæŽ¥ä¸Šä½¿ç”¨select <dbid> 命令选择一个ä¸åŒçš„æ•°æ®åº“,dbid是一个介于0到databases - 1 之间的数值。 示例:databases 16 20ã€save 解释:ä¿å˜æ•°æ®åˆ°ç£ç›˜ã€‚æ ¼å¼æ˜¯ï¼šsave <seconds> <changes> ,å«ä¹‰æ˜¯åœ¨ seconds 秒之åŽè‡³å°‘有 changes个keys å‘生改å˜åˆ™ä¿å˜ä¸€æ¬¡ã€‚ 示例: save 900 1 save 300 10 save 60 10000 21ã€stop-writes-on-bgsave-error 解释:默认情况下,如果 redis 最åŽä¸€æ¬¡çš„åŽå°ä¿å˜å¤±è´¥ï¼Œredis å°†åœæ¢æŽ¥å—写æ“ä½œï¼Œè¿™æ ·ä»¥ä¸€ç§å¼ºç¡¬çš„æ–¹å¼è®©ç”¨æˆ·çŸ¥é“æ•°æ®ä¸èƒ½æ£ç¡®çš„æŒä¹…åŒ–åˆ°ç£ç›˜ï¼Œ å¦åˆ™å°±ä¼šæ²¡äººæ³¨æ„到ç¾éš¾çš„å‘生。 如果åŽå°ä¿å˜è¿›ç¨‹é‡æ–°å¯åŠ¨å·¥ä½œäº†ï¼Œredis 也将自动的å…许写æ“ä½œã€‚ç„¶è€Œä½ è¦æ˜¯å®‰è£…了é è°±çš„ç›‘æŽ§ï¼Œä½ å¯èƒ½ä¸å¸Œæœ› redis è¿™æ ·åšï¼Œé‚£ä½ å°±æ”¹æˆ no 好了。 示例:stop-writes-on-bgsave-error no 22ã€rdbcompression 解释:是å¦åœ¨dump .rdbæ•°æ®åº“的时候压缩å—符串,默认设置为yesã€‚å¦‚æžœä½ æƒ³èŠ‚çº¦ä¸€äº›cpu资æºçš„è¯ï¼Œå¯ä»¥æŠŠå®ƒè®¾ç½®ä¸ºnoï¼Œè¿™æ ·çš„è¯æ•°æ®é›†å°±å¯èƒ½ä¼šæ¯”较大。 示例:rdbcompression yes 23ã€rdbchecksum 解释:是å¦CRC64æ ¡éªŒrdb文件,会有一定的性能æŸå¤±ï¼ˆå¤§æ¦‚10%)。 示例:rdbchecksum yes 24ã€dbfilename 解释:rdb文件的åå—。 示例:dbfilename dump.rdb 25ã€dir 解释:数æ®åº“å˜æ”¾ç›®å½•。必须是一个目录,aof文件也会ä¿å˜åˆ°è¯¥ç›®å½•下。 示例:dir ./ 26ã€slaveof 解释:设置本机为slaveæœåŠ¡ã€‚æ ¼å¼ï¼šslaveof <masterip> <masterport>。设置masteræœåŠ¡çš„IP地å€åŠç«¯å£ï¼Œåœ¨Rediså¯åŠ¨æ—¶ï¼Œå®ƒä¼šè‡ªåŠ¨ä»Žmaster进行数æ®åŒæ¥ã€‚ 示例:slaveof 192.168.0.1 6379 27ã€masterauth 解释:当masteræœåŠ¡è®¾ç½®äº†å¯†ç ä¿æŠ¤æ—¶ï¼ŒslavæœåŠ¡è¿žæŽ¥master的密ç 。 示例:masterauth 123456 28ã€slave-serve-stale-data 解释:当一个slave与master失去è”系时,或者å¤åˆ¶æ£åœ¨è¿›è¡Œçš„æ—¶å€™ï¼Œslave应对请求的行为:1) 如果为 yes(默认值) ,slave ä»ç„¶ä¼šåº”ç”客户端请求,但返回的数æ®å¯èƒ½æ˜¯è¿‡æ—¶ï¼Œæˆ–者数æ®å¯èƒ½æ˜¯ç©ºçš„åœ¨ç¬¬ä¸€æ¬¡åŒæ¥çš„æ—¶å€™ï¼›2) 如果为 no ï¼Œåœ¨ä½ æ‰§è¡Œé™¤äº† info å’Œ salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误。 示例:slave-serve-stale-data yes 29ã€slave-read-only 解释:设置slaveæ˜¯å¦æ˜¯åªè¯»çš„。从2.6版起,slave默认是åªè¯»çš„。 示例:slave-read-only yes 30ã€repl-diskless-sync 解释:主从数æ®å¤åˆ¶æ˜¯å¦ä½¿ç”¨æ— 硬盘å¤åˆ¶åŠŸèƒ½ã€‚ 示例:repl-diskless-sync no 31ã€repl-ping-slave-period 解释:指定slave定期ping master的周期,默认10秒钟。 示例:repl-ping-slave-period 10 32ã€repl-timeout è§£é‡Šï¼šè®¾ç½®ä¸»åº“æ‰¹é‡æ•°æ®ä¼ 输时间或者pingå›žå¤æ—¶é—´é—´éš”,默认值是60ç§’ 。 示例:repl-timeout 60 33ã€repl-disable-tcp-nodelay 解释:指定å‘slaveåŒæ¥æ•°æ®æ—¶ï¼Œæ˜¯å¦ç¦ç”¨socketçš„NO_DELAY选 项。若é…置为“yesâ€ï¼Œåˆ™ç¦ç”¨NO_DELAY,则TCPåè®®æ ˆä¼šåˆå¹¶å°åŒ…统一å‘é€ï¼Œè¿™æ ·å¯ä»¥å‡å°‘主从节点间的包数é‡å¹¶èŠ‚çœå¸¦å®½ï¼Œä½†ä¼šå¢žåŠ æ•°æ®åŒæ¥åˆ° slave的时间。若é…置为“noâ€ï¼Œè¡¨æ˜Žå¯ç”¨NO_DELAY,则TCPåè®®æ ˆä¸ä¼šå»¶è¿Ÿå°åŒ…çš„å‘逿—¶æœºï¼Œè¿™æ ·æ•°æ®åŒæ¥çš„延时会å‡å°‘ï¼Œä½†éœ€è¦æ›´å¤§çš„带宽。 通常情况下,应该é…置为no以é™ä½ŽåŒæ¥å»¶æ—¶ï¼Œä½†åœ¨ä¸»ä»ŽèŠ‚ç‚¹é—´ç½‘ç»œè´Ÿè½½å·²ç»å¾ˆé«˜çš„æƒ…况下,å¯ä»¥é…置为yes。 示例:repl-disable-tcp-nodelay no 34ã€repl-backlog-size 解释:设置主从å¤åˆ¶backlog容é‡å¤§å°ã€‚这个 backlog 是一个用æ¥åœ¨ slaves 被æ–å¼€è¿žæŽ¥æ—¶å˜æ”¾ slave æ•°æ®çš„ buffer,所以当一个 slave 想è¦é‡æ–°è¿žæŽ¥ï¼Œé€šå¸¸ä¸å¸Œæœ›å…¨éƒ¨é‡æ–°åŒæ¥ï¼Œåªæ˜¯éƒ¨åˆ†åŒæ¥å°±å¤Ÿäº†ï¼Œä»…ä»…ä¼ é€’ slave 在æ–开连接时丢失的这部分数æ®ã€‚这个值越大,salve å¯ä»¥æ–开连接的时间就越长。 示例:repl-backlog-size 1mb 35ã€repl-backlog-ttl 解释:é…置当masterå’Œslave失去è”系多少秒之åŽï¼Œæ¸…空backlog释放空间。当é…ç½®æˆ0æ—¶ï¼Œè¡¨ç¤ºæ°¸è¿œä¸æ¸…空。 示例:repl-backlog-ttl 3600 36ã€slave-priority 解释:当 master ä¸èƒ½æ£å¸¸å·¥ä½œçš„æ—¶å€™ï¼ŒRedis Sentinel 会从 slaves ä¸é€‰å‡ºä¸€ä¸ªæ–°çš„ master,这个值越å°ï¼Œå°±è¶Šä¼šè¢«ä¼˜å…ˆé€‰ä¸ï¼Œä½†æ˜¯å¦‚果是 0 , 那是æ„味ç€è¿™ä¸ª slave ä¸å¯èƒ½è¢«é€‰ä¸ã€‚ 默认优先级为 100。 示例:slave-priority 100 37ã€requirepass 解释:设置redis连接密ç 。 示例:requirepass foobared 38ã€rename-command 解释:将命令é‡å‘½å。为了安全考虑,å¯ä»¥å°†æŸäº›é‡è¦çš„ã€å±é™©çš„命令é‡å‘½åã€‚å½“ä½ æŠŠæŸä¸ªå‘½ä»¤é‡å‘½åæˆç©ºå—符串的时候就ç‰äºŽå–消了这个命令。 示例:rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 rename-command CONFIG "" 39ã€maxclients 解释:设置客户端最大并å‘è¿žæŽ¥æ•°ï¼Œé»˜è®¤æ— é™åˆ¶ï¼ŒRediså¯ä»¥åŒæ—¶æ‰“开的客户端连接数为Redis进程å¯ä»¥æ‰“开的最大文件æè¿°ç¬¦æ•°-32(redis server自身会使用一些),如果设置 maxclients 0,表示ä¸ä½œé™åˆ¶ã€‚当客户端连接数到达é™åˆ¶æ—¶ï¼ŒRedisä¼šå…³é—æ–°çš„连接并å‘客户端返回max number of clients reached错误信æ¯ã€‚ 示例:maxclients 10000 40ã€maxmemory 解释: 指定Redis最大内å˜é™åˆ¶ï¼ŒRedis在å¯åŠ¨æ—¶ä¼šæŠŠæ•°æ®åŠ è½½åˆ°å†…å˜ä¸ï¼Œè¾¾åˆ°æœ€å¤§å†…å˜åŽï¼ŒRedis会先å°è¯•清除已到期或å³å°†åˆ°æœŸçš„Keyï¼Œå½“æ¤æ–¹æ³•å¤„ç† åŽï¼Œä»ç„¶åˆ°è¾¾æœ€å¤§å†…å˜è®¾ç½®ï¼Œå°†æ— 法å†è¿›è¡Œå†™å…¥æ“作,但ä»ç„¶å¯ä»¥è¿›è¡Œè¯»å–æ“作。Redisæ–°çš„vm机制,会把Keyå˜æ”¾å†…å˜ï¼ŒValueä¼šå˜æ”¾åœ¨swapåŒºï¼Œæ ¼å¼ï¼šmaxmemory <bytes> 。 示例:maxmemory 1024000 41ã€maxmemory-policy 解释:当内å˜ä½¿ç”¨è¾¾åˆ°æœ€å¤§å€¼æ—¶ï¼Œredis使用的清楚ç–ç•¥ã€‚æœ‰ä»¥ä¸‹å‡ ç§å¯ä»¥é€‰æ‹©ï¼ˆæ˜Žæ˜Žæœ‰6ç§ï¼Œå®˜æ–¹é…置文件里å´è¯´æœ‰5ç§å¯ä»¥é€‰æ‹©ï¼Ÿï¼‰ï¼š 1)volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used ) 2)allkeys-lru 利用LRU算法移除任何key 3)volatile-random ç§»é™¤è®¾ç½®è¿‡è¿‡æœŸæ—¶é—´çš„éšæœºkey 4)allkeys-random ç§»é™¤éšæœºkey 5)volatile-ttl 移除å³å°†è¿‡æœŸçš„key(minor TTL) 6)noeviction noeviction ä¸ç§»é™¤ä»»ä½•keyï¼Œåªæ˜¯è¿”回一个写错误 。默认选项 示例:maxmemory-policy noeviction 42ã€maxmemory-samples 解释:LRU å’Œ minimal TTL ç®—æ³•éƒ½ä¸æ˜¯ç²¾å‡†çš„算法,但是相对精确的算法(为了节çœå†…å˜)ï¼Œéšæ„ä½ å¯ä»¥é€‰æ‹©æ ·æœ¬å¤§å°è¿›è¡Œæ£€æµ‹ã€‚redis默认选择3ä¸ªæ ·æœ¬è¿›è¡Œæ£€æµ‹ï¼Œä½ å¯ä»¥é€šè¿‡maxmemory-samples进行设置 æ ·æœ¬æ•°ã€‚ 示例:maxmemory-samples 5 43ã€appendonly 解释:是å¦å¯ç”¨aofæŒä¹…åŒ–æ–¹å¼ ã€‚å³æ˜¯å¦åœ¨æ¯æ¬¡æ›´æ–°æ“作åŽè¿›è¡Œæ—¥å¿—记录,默认é…置是no,å³åœ¨é‡‡ç”¨å¼‚æ¥æ–¹å¼æŠŠæ•°æ®å†™å…¥åˆ°ç£ç›˜ï¼Œå¦‚æžœä¸å¼€å¯ï¼Œå¯èƒ½ä¼šåœ¨æ–电时导致部分数æ®ä¸¢å¤±ã€‚ 示例:appendonly no 44ã€appendfilename 解释:更新日志文件å,默认值为appendonly.aof 。 示例:appendfilename "appendonly.aof" 45ã€appendfsync 解释:aof文件刷新的频率。有三ç§ï¼š 1)no ä¾é OS进行刷新,redisä¸ä¸»åŠ¨åˆ·æ–°AOFï¼Œè¿™æ ·æœ€å¿«ï¼Œä½†å®‰å…¨æ€§å°±å·®ã€‚ 2) always æ¯æäº¤ä¸€ä¸ªä¿®æ”¹å‘½ä»¤éƒ½è°ƒç”¨fsync刷新到AOF文件,éžå¸¸éžå¸¸æ…¢ï¼Œä½†ä¹Ÿéžå¸¸å®‰å…¨ã€‚ 3) everysec æ¯ç§’钟都调用fsync刷新到AOF文件,很快,但å¯èƒ½ä¼šä¸¢å¤±ä¸€ç§’以内的数æ®ã€‚ 示例:appendfsync everysec 46ã€no-appendfsync-on-rewrite 解释:指定是å¦åœ¨åŽå°aof文件rewrite期间调用fsync,默认为no,表示è¦è°ƒç”¨fsyncï¼ˆæ— è®ºåŽå°æ˜¯å¦æœ‰å进程在刷盘)。Redis在åŽå°å†™RDB文件或é‡å†™AOF文件期间会å˜åœ¨å¤§é‡ç£ç›˜IOï¼Œæ¤æ—¶ï¼Œåœ¨æŸäº›linux系统ä¸ï¼Œè°ƒç”¨fsyncå¯èƒ½ä¼šé˜»å¡žã€‚ 示例:no-appendfsync-on-rewrite no 47ã€auto-aof-rewrite-percentage 解释:当AOF文件增长到一定大å°çš„æ—¶å€™Redis能够调用 BGREWRITEAOF 对日志文件进行é‡å†™ 。当AOF文件大å°çš„增长率大于该é…置项时自动开å¯é‡å†™ã€‚ 示例:auto-aof-rewrite-percentage 100 48ã€auto-aof-rewrite-min-size 解释:当AOF文件增长到一定大å°çš„æ—¶å€™Redis能够调用 BGREWRITEAOF 对日志文件进行é‡å†™ 。当AOF文件大å°å¤§äºŽè¯¥é…置项时自动开å¯é‡å†™ã€‚ 示例:auto-aof-rewrite-min-size 64mb 49ã€aof-load-truncated 解释:redis在å¯åŠ¨æ—¶å¯ä»¥åŠ è½½è¢«æˆªæ–çš„AOF文件,而ä¸éœ€è¦å…ˆæ‰§è¡Œ redis-check-aof 工具。 示例:aof-load-truncated yes 50ã€lua-time-limit 解释:一个Lua脚本最长的执行时间,å•ä½ä¸ºæ¯«ç§’,如果为0æˆ–è´Ÿæ•°è¡¨ç¤ºæ— é™æ‰§è¡Œæ—¶é—´ï¼Œé»˜è®¤ä¸º5000。 示例:lua-time-limit 5000 Redis çš„ master/slave å¤åˆ¶ï¼š Redis çš„ master/slave æ•°æ®å¤åˆ¶æ–¹å¼å¯ä»¥æ˜¯ä¸€ä¸»ä¸€ä»Žæˆ–者是一主多从的方å¼ï¼ŒRedis 在 master 是éžé˜»å¡žæ¨¡å¼ï¼Œä¹Ÿå°±æ˜¯è¯´åœ¨ slave 执行数æ®åŒæ¥çš„æ—¶å€™ï¼Œmaster 是å¯ä»¥æŽ¥å—客户端的 请求的,并ä¸å½±å“åŒæ¥æ•°æ®çš„一致性,然而在 slave 端是阻塞模å¼çš„,slave åœ¨åŒæ¥ master æ•°æ®æ—¶ï¼Œå¹¶ä¸èƒ½å¤Ÿå“应客户端的查询 Redis çš„ master/slave 模å¼ä¸‹ï¼Œmaster æä¾›æ•°æ®è¯»å†™æœåŠ¡ï¼Œè€Œ slave åªæä¾›è¯»æœåŠ¡ Redis çš„ master/slave çš„é…ç½®æ–¹å¼æ˜¯åœ¨ slave 主机的 Redis 目录下的 redis.conf é…ç½®æ–‡ä»¶ä¸ æ·»åŠ ï¼š slaveof master_ip master_port 例如: 我们é…置我们的 slave 为:redis-slave.conf daemonize yes pidfile redis-slave.pid port 6380 timeout 300 loglevel verbose logfile stdout databases 16 save 900 1 save 300 10 save 60 10000 rdbcompression yes dbfilename dump-slave.rd dir /home/falcon/redis-2.0.0/ slaveof 127.0.0.1 6379 appendonly no appendfsync everysec vm-enabled no vm-swap-file logs/redis-slave.swap vm-max-memory 0 vm-page-size 32 m-pages 134217728 vm-max-threads 4 glueoutputbuf yes hash-max-zipmap-entries 64 hash-max-zipmap-value 512 activerehashing yes