1 OS Configure:
正常启动后会有一些warning需要解决,这需要去修改操作系统的参数:
13538:M 16 Sep 23:37:48.481 * Increased maximum number of open files to 10032 (it was originally set to 1024). 13538:M 16 Sep 23:37:48.485 # Not listening to IPv6: unsupproted 13538:M 16 Sep 23:37:48.486 * Node configuration loaded, I'm 41a1d429a927a35e70c80a8945549ac0bf390c6d 13538:M 16 Sep 23:37:48.489 # Not listening to IPv6: unsupproted 13538:M 16 Sep 23:37:48.490 # Server started, Redis version 3.2.8 13538:M 16 Sep 23:37:48.490 # <span style="color: #ff0000;">WARNING</span> overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. 13538:M 16 Sep 23:37:48.490 # <span style="color: #ff0000;">WARNING</span> you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
主要有以下一些参数需要修改:
echo "ulimit -n 65535" ulimit -n 65535 ulimit -n echo "change vm.overcommit" sed -i "/vm.overcommit_memory/d" /etc/sysctl.conf echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf sysctl vm.overcommit_memory=1 echo "Disable Transparent Huge Pages (THP) support " echo never > /sys/kernel/mm/transparent_hugepage/enabled sed -i "/transparent_hugepage/d" /etc/rc.local echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
2 Redis Configure:
https://github.com/antirez/redis/blob/3.2/redis.conf
redis3.2大约50+配置,如果不设置,也会有默认值,例如对于slave-priority:
#define CONFIG_DEFAULT_SLAVE_PRIORITY 100 server.slave_priority = CONFIG_DEFAULT_SLAVE_PRIORITY; else if (!strcasecmp(argv[0],"slave-priority") && argc == 2) { server.slave_priority = atoi(argv[1]);
所以可以只设置需要设置的,其他不显示设置,这样配置会少很多。
原始默认配置:
bind 127.0.0.1 protected-mode yes port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no supervised no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 16 save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb dir ./ slave-serve-stale-data yes slave-read-only yes repl-diskless-sync no repl-diskless-sync-delay 5 repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfilename "appendonly.aof" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-size -2 list-compress-depth 0 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes
2.1 关闭rdb:
shutdown后:
[root@redis005 redis]# ll
total 8
drwxr-xr-x 2 wbx-redis wbx-group 4096 Sep 12 12:13 bin
-rw-r—– 1 root root 76 Sep 12 12:24 dump.rdb
[root@redis005 redis]# more dump.rdb
REDIS0007 redis-ver3.2.8
redis-bitseúѷused-memx4
重新启动后:
[root@redis005 redis]# ll
total 34056
drwxr-xr-x 2 wbx-redis wbx-group 4096 Sep 12 12:13 bin
-rw——- 1 root root 34866203 Sep 13 14:52 dump.rdb
5148:S 13 Sep 14:52:29.035 * Full resync from master: e7d510571e12e91919a06113f5ebe75bb41e62c5:1 5148:S 13 Sep 14:52:32.091 * MASTER SLAVE sync: receiving 34866203 bytes from master 5148:S 13 Sep 14:52:33.853 * MASTER SLAVE sync: Flushing old data 5148:S 13 Sep 14:52:33.853 * MASTER SLAVE sync: Loading DB in memory 5148:S 13 Sep 14:52:35.298 * MASTER SLAVE sync: Finished with success 5148:S 13 Sep 14:52:35.801 - DB 0: 338506 keys (0 volatile) in 524288 slots HT. 5148:S 13 Sep 14:52:35.801 - 1 clients connected (0 slaves), 96852208 bytes in use 5148:S 13 Sep 14:52:39.615 - Accepted 127.0.0.1:20931
3 open ports:
假设redis.conf中配置:
port 7001
则另外的bus port为 10000+7001
The Cluster bus Every Redis Cluster node has an additional TCP port for receiving incoming connections from other Redis Cluster nodes. This port is at a fixed offset from the normal TCP port used to receive incoming connections from clients. To obtain the Redis Cluster port, 10000 should be added to the normal commands port. For example, if a Redis node is listening for client connections on port 6379, the Cluster bus port 16379 will also be opened.
那么netstat结果:
[root@redis001 ~]# netstat -nap|grep redis tcp 0 0 0.0.0.0:17001 0.0.0.0:* LISTEN 29780/redis-server tcp 0 0 0.0.0.0:7001 0.0.0.0:* LISTEN 29780/redis-server tcp 0 0 10.224.2.141:35973 10.224.2.145:17001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:17001 10.224.2.144:48823 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:17001 10.224.2.145:28201 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:48422 10.224.2.144:7001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:37238 10.224.2.143:17001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:17001 10.224.2.146:40126 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:20402 10.224.2.146:17001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:47831 10.224.2.142:17001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:17001 10.224.2.143:35657 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:26000 10.224.2.144:17001 ESTABLISHED 29780/redis-server tcp 0 0 10.224.2.141:17001 10.224.2.142:59406 ESTABLISHED 29780/redis-server