首页 > 代码库 > Redis主从搭建
Redis主从搭建
原创文章,转载请注明出处:http://www.huyanping.cn/?p=259
作者:Jenner
redis安装方法见:初识Redis——邂逅
安装环境:
[root@localhost redis]# redis-server --version Redis server v=2.8.7 sha=00000000:0 malloc=jemalloc-3.2.0 bits=32 build=df8b796b6fcf0127 [root@localhost redis]# cat /proc/version Linux version 2.6.18-92.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP Tue Jun 10 18:49:47 EDT 2008
1、复制配置文件
#master配置文件 cp redis.conf redis-master.conf #slave配置文件 cp redis.conf redis-slave.conf #备份配置文件 cp redis.conf redis-bak.conf
2、修改配置文件
#master配置文件 #保证PID文件区分,PID文件主要用于保证守护进程单例运行 pidfile /var/run/redis-master.pid #区分LOG文件 logfile "/data/redis/6379/log/redis.log" #区分持久化文件 dir /data/redis/6379/data #区分端口 port 6379 #slave配置文件 pidfile /var/run/redis-slave.pid logfile "/data/redis/6380/log/redis.log" dir /data/redis/6380/data port 6380 slaveof 127.0.0.1 6379 #如果为yes,slave实例只读,如果为no,slave实例可读可写。默认 slave-read-only yes
3、启动
redis-server /etc/redis/redis-master.conf redis-server /etc/redis/redis-slave.conf
4、验证
master启动日志
[root@localhost redis]# cat /data/redis/6379/log/redis.log [24787] 13 Sep 10:39:45.143 * Max number of open files set to 10032 [24787] 13 Sep 10:39:45.145 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with ‘noeviction‘ policy now. _._ _.-``__ ‘‘-._ _.-`` `. `_. ‘‘-._ Redis 2.8.7 (00000000/0) 32 bit .-`` .-```. ```\/ _.,_ ‘‘-._ ( ‘ , .-` | `, ) Running in stand alone mode |`-._`-...-` __...-.``-._|‘` _.-‘| Port: 6379 | `-._ `._ / _.-‘ | PID: 24787 `-._ `-._ `-./ _.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | http://redis.io `-._ `-._`-.__.-‘_.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | `-._ `-._`-.__.-‘_.-‘ _.-‘ `-._ `-.__.-‘ _.-‘ `-._ _.-‘ `-.__.-‘ [24787] 13 Sep 10:39:45.146 # Server started, Redis version 2.8.7 [24787] 13 Sep 10:39:45.146 # WARNING 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. [24787] 13 Sep 10:39:45.146 * The server is now ready to accept connections on port 6379 [24787] 13 Sep 10:40:54.342 * DB saved on disk [24787] 13 Sep 10:42:50.581 * Slave asks for synchronization [24787] 13 Sep 10:42:50.581 * Full resync requested by slave. [24787] 13 Sep 10:42:50.581 * Starting BGSAVE for SYNC [24787] 13 Sep 10:42:50.582 * Background saving started by pid 24816 [24816] 13 Sep 10:42:50.586 * DB saved on disk [24816] 13 Sep 10:42:50.587 * RDB: 0 MB of memory used by copy-on-write [24787] 13 Sep 10:42:50.673 * Background saving terminated with success [24787] 13 Sep 10:42:50.673 * Synchronization with slave succeeded [24787] 13 Sep 10:47:04.093 * DB saved on disk
slave 启动日志
[root@localhost redis]# cat /data/redis/6380/log/redis.log [24813] 13 Sep 10:42:50.578 * Max number of open files set to 10032 [24813] 13 Sep 10:42:50.579 # Warning: 32 bit instance detected but no memory limit set. Setting 3 GB maxmemory limit with ‘noeviction‘ policy now. _._ _.-``__ ‘‘-._ _.-`` `. `_. ‘‘-._ Redis 2.8.7 (00000000/0) 32 bit .-`` .-```. ```\/ _.,_ ‘‘-._ ( ‘ , .-` | `, ) Running in stand alone mode |`-._`-...-` __...-.``-._|‘` _.-‘| Port: 6380 | `-._ `._ / _.-‘ | PID: 24813 `-._ `-._ `-./ _.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | http://redis.io `-._ `-._`-.__.-‘_.-‘ _.-‘ |`-._`-._ `-.__.-‘ _.-‘_.-‘| | `-._`-._ _.-‘_.-‘ | `-._ `-._`-.__.-‘_.-‘ _.-‘ `-._ `-.__.-‘ _.-‘ `-._ _.-‘ `-.__.-‘ [24813] 13 Sep 10:42:50.580 # Server started, Redis version 2.8.7 [24813] 13 Sep 10:42:50.580 # WARNING 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. [24813] 13 Sep 10:42:50.580 * The server is now ready to accept connections on port 6380 [24813] 13 Sep 10:42:50.580 * Connecting to MASTER 127.0.0.1:6379 [24813] 13 Sep 10:42:50.580 * MASTER <-> SLAVE sync started [24813] 13 Sep 10:42:50.580 * Non blocking connect for SYNC fired the event. [24813] 13 Sep 10:42:50.581 * Master replied to PING, replication can continue... [24813] 13 Sep 10:42:50.581 * Partial resynchronization not possible (no cached master) [24813] 13 Sep 10:42:50.583 * Full resync from master: 9ef3d846e366f7643db9e9250b508d64a34c1079:1 [24813] 13 Sep 10:42:50.673 * MASTER <-> SLAVE sync: receiving 31 bytes from master [24813] 13 Sep 10:42:50.673 * MASTER <-> SLAVE sync: Flushing old data [24813] 13 Sep 10:42:50.673 * MASTER <-> SLAVE sync: Loading DB in memory [24813] 13 Sep 10:42:50.674 * MASTER <-> SLAVE sync: Finished with success [24813] 13 Sep 10:47:04.096 * DB saved on disk
数据同步验证:
[root@localhost redis]# redis-cli 127.0.0.1:6379> set name test OK 127.0.0.1:6379> save OK [root@localhost redis]# redis-cli -p 6380 127.0.0.1:6380> keys * 1) "name"
Redis主从搭建
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。