Redis 安装环境
CentOS 7 master:172.31.23.28:6666 slave:172.31.23.28:6666
Redis 下载
下载地址:http://download.redis.io/releases/redis-4.0.9.tar.gz
编译安装主从都需要:
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz $ tar xvzf redis-4.0.9.tar.gz -C /usr/local/ $ cd /usr/local/redis-4.0.9 $ make & make test
编译过程报错如下:
(1)
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory #include <jemalloc/jemalloc.h> ^ compilation terminated. make[1]: *** [adlist.o] Error 1 make[1]: Leaving directory `/usr/local/redis-4.0.9/src' make[1]: *** [adlist.o] Error 1 make[1]: Leaving directory `/usr/local/redis-4.0.9/src' make: *** [all] Error 2 make: *** [test] Error 2 [1]+ Exit 2 make
解决方法:
make MALLOC=libc
(2)
[root@ip-172-31-18-226 redis-4.0.9]# make test cd src && make test make[1]: Entering directory `/usr/local/redis-4.0.9/src' CC Makefile.dep make[1]: Leaving directory `/usr/local/redis-4.0.9/src' make[1]: Entering directory `/usr/local/redis-4.0.9/src' You need tcl 8.5 or newer in order to run the Redis test make[1]: *** [test] Error 1 make[1]: Leaving directory `/usr/local/redis-4.0.9/src' make: *** [test] Error 2
解决方法:
yum install -y tcl
主redis配置
daemonize yes pidfile /data/redis6666/redis.pid port 6666 unixsocket /tmp/redis6666.sock unixsocketperm 755 timeout 30 loglevel notice logfile /data/redis6666/redis.log databases 16 save "" stop-writes-on-bgsave-error no rdbcompression yes rdbchecksum yes dbfilename dump6666.rdb dir /data/redis6666 #redis40 new maxmemory-policy noeviction #redis40 new maxclients 10000 maxmemory-samples 3 appendonly no no-appendfsync-on-rewrite yes slowlog-log-slower-than 1000 slowlog-max-len 1024 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 0 0 0 client-output-buffer-limit pubsub 32mb 8mb 60 requirepass 769rt6f51e3t6cf3 masterauth 769rt6f51e3t6cf3 maxmemory 2G
启动观察
[root@ip-172-31-23-28 redis6666]# /usr/local/redis-4.0.9/src/redis-server /data/redis6666/redis6666.conf [root@ip-172-31-23-28 redis6666]# ps -axf|grep redis 22166 pts/0 S+ 0:00 \_ grep --color=auto redis 22161 ? Ssl 0:00 /usr/local/redis-4.0.9/src/redis-server *:6666
从redis配置
从配置比较简单,如下:
daemonize yes pidfile /data/redis6666/redis.pid port 6666 unixsocket /tmp/redis6666.sock unixsocketperm 755 timeout 30 loglevel notice logfile /data/redis6666/redis.log databases 16 save "" stop-writes-on-bgsave-error no rdbcompression yes rdbchecksum yes dbfilename dump6666.rdb dir /data/redis6666 #redis40 new maxmemory-policy noeviction #redis40 new maxclients 10000 maxmemory-samples 3 appendonly no no-appendfsync-on-rewrite yes slowlog-log-slower-than 1000 slowlog-max-len 1024 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 0 0 0 client-output-buffer-limit pubsub 32mb 8mb 60 requirepass 769rt6f51e3tdfgz masterauth 769rt6f51e3tdfgz maxmemory 2G slaveof 172.31.23.28 6666
注,就增加了一行,然后我们将从库启动起来,看看状态
/usr/local/redis-4.0.9/src/redis-server /data/redis6666/redis6666.conf
测试
登录到主库,如下:
[root@redis6667]# /usr/local/redis-4.0.9/src/redis-cli -h 127.0.0.1 -p 6666 127.0.0.1:6666> auth 769rt6f51e3tdfgz OK 127.0.0.1:6666> info # Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:6d8e430d4491cb5b redis_mode:standalone os:Linux 3.10.0-327.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:4.8.5 process_id:22161 run_id:f784809ffa22d645fd8f8d8608bad73425901d6e tcp_port:6666 uptime_in_seconds:48087 uptime_in_days:0 hz:10 lru_clock:834292 executable:/usr/local/redis-4.0.9/src/redis-server config_file:/data/redis6666/redis6666.conf # Clients connected_clients:1 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:1968764 used_memory_human:1.88M used_memory_rss:2199552 used_memory_rss_human:2.10M used_memory_peak:1968764 used_memory_peak_human:1.88M used_memory_peak_perc:100.05% used_memory_overhead:1967792 used_memory_startup:852720 used_memory_dataset:972 used_memory_dataset_perc:0.09% total_system_memory:15332077568 total_system_memory_human:14.28G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:2000000000 maxmemory_human:1.86G maxmemory_policy:noeviction mem_fragmentation_ratio:1.12 mem_allocator:libc active_defrag_running:0 lazyfree_pending_objects:0 # Persistence loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1527560675 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 rdb_last_cow_size:217088 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok aof_last_cow_size:0 # Stats total_connections_received:2 total_commands_processed:277 instantaneous_ops_per_sec:1 total_net_input_bytes:9876 total_net_output_bytes:647 instantaneous_input_kbps:0.04 instantaneous_output_kbps:0.00 rejected_connections:0 sync_full:1 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:185 migrate_cached_sockets:0 slave_expires_tracked_keys:0 active_defrag_hits:0 active_defrag_misses:0 active_defrag_key_hits:0 active_defrag_key_misses:0 # Replicationrole:masterconnected_slaves:1slave0:ip=172.31.23.28,port=6667,state=online,offset=378,lag=1master_replid:85b9b60cfecd8e85a863909789bf064461b886a7master_replid2:0000000000000000000000000000000000000000 master_repl_offset:378 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:378 # CPU used_cpu_sys:19.84 used_cpu_user:4.76 used_cpu_sys_children:0.00 used_cpu_user_children:0.00 # Cluster cluster_enabled:0 # Keyspace
登录到从库,如下:
[root@redis6666]# /usr/local/redis-4.0.9/src/redis-cli -h 127.0.0.1 -p 6666 127.0.0.1:6666> auth 769rt6f51e3tdfgz OK 127.0.0.1:6666> info # Server redis_version:4.0.9 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:6d8e430d4491cb5b redis_mode:standalone os:Linux 3.10.0-327.el7.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:4.8.5 process_id:940 run_id:01ef7b6c6abac31ee21f8d0c231fbaf0598c6e12 tcp_port:6667 uptime_in_seconds:107 uptime_in_days:0 hz:10 lru_clock:834126 executable:/usr/local/redis-4.0.9/src/redis-server config_file:/data/redis6666/redis6666.conf # Clients connected_clients:2 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:1969790 used_memory_human:1.88M used_memory_rss:2191360 used_memory_rss_human:2.09M used_memory_peak:1969790 used_memory_peak_human:1.88M used_memory_peak_perc:100.05% used_memory_overhead:1967814 used_memory_startup:852742 used_memory_dataset:1976 used_memory_dataset_perc:0.18% total_system_memory:15332077568 total_system_memory_human:14.28G used_memory_lua:37888 used_memory_lua_human:37.00K maxmemory:2000000000 maxmemory_human:1.86G maxmemory_policy:noeviction mem_fragmentation_ratio:1.11 mem_allocator:libc active_defrag_running:0 lazyfree_pending_objects:0 # Persistence loading:0 rdb_changes_since_last_save:0 rdb_bgsave_in_progress:0 rdb_last_save_time:1527560675 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:-1 rdb_current_bgsave_time_sec:-1 rdb_last_cow_size:0 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok aof_last_cow_size:0 # Stats total_connections_received:2 total_commands_processed:11 instantaneous_ops_per_sec:0 total_net_input_bytes:397 total_net_output_bytes:3803 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.02 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:0 expired_stale_perc:0.00 expired_time_cap_reached_count:0 evicted_keys:0 keyspace_hits:0 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0 migrate_cached_sockets:0 slave_expires_tracked_keys:0 active_defrag_hits:0 active_defrag_misses:0 active_defrag_key_hits:0 active_defrag_key_misses:0 # Replicationrole:slavemaster_host:172.31.23.28master_port:6666master_link_status:up master_last_io_seconds_ago:9 master_sync_in_progress:0 slave_repl_offset:140 slave_priority:100 slave_read_only:1 connected_slaves:0 master_replid:85b9b60cfecd8e85a863909789bf064461b886a7 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:140 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:140 # CPU used_cpu_sys:0.06 used_cpu_user:0.01 used_cpu_sys_children:0.00 used_cpu_user_children:0.00 # Cluster cluster_enabled:0 # Keyspace
好了,看状态就成了,下来我们再测试一下,
主库:
127.0.0.1:6666> set name zhangsan OK
从库:
127.0.0.1:6666> get name "zhangsan"