1. 程式人生 > 資料庫 >redis的主從配置方法詳解

redis的主從配置方法詳解

Linux系統下的redis的主從配置方法非常簡單,下面給大家分享一下redis的主從配置方法具體的操作步驟

環境介紹:

OS:oracle linux 5.6

redis:redis-2.6.8

master rac1 192.168.2.101

slave rac2 192.168.2.102

下載地址:

http://redis.googlecode.com/files/redis-2.6.8.tar.gz

安裝配置主從redis

1. 主節點配置

[root@rac1 opt] tar zxvf redis-2.6.8.tar.gz
[root@rac1 opt] cd redis-2.6.8
[root@rac1 redis-2.6.8]# make
[root@rac1 redis-2.6.8]# cp src/redis-server /usr/local/bin/
[root@rac1 redis-2.6.8]# cp redis.conf /etc/redis_master.conf
[root@rac1 redis-2.6.8]# cat /etc/redis_master.conf 
# If port 0 is specified Redis will not listen on a TCP socket.

port 6379 #此埠是redis預設的,可以不改

複製軟體到從節點

[root@rac1 opt]# scp -r redis-2.6.8 rac2:/opt

2. 從節點配置

[root@rac2 redis-2.6.8]# cp src/redis-server /usr/local/bin/
[root@rac2 redis-2.6.8]# cp redis.conf /etc/redis_slave.conf
# If port 0 is specified Redis will not listen on a TCP socket.

port 6389 #修改為slave節點的自定義埠

# slaveof <masterip> <masterport>
slaveof 192.168.2.101 6379 

此步最關鍵,新增上master的IP或主機及埠號

3. 啟動redis服務

啟動master節點

[root@rac1 ~]# redis-server /etc/redis_master.conf > redis_master.log 2>&1 &

&可以使命令在後臺的執行,不影響螢幕使用。

  _._             
   _.-``__ ''-._            
  _.-`` `. `_. ''-._   Redis 2.6.8 (00000000/0) 64 bit
 .-`` .-```. ```\/ _.,_ ''-._         
( ',.-` | `,)  Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'|  Port: 6379
| `-._ `._ /  _.-' |  PID: 477
 `-._ `-._ `-./ _.-' _.-'         
|`-._`-._ `-.__.-' _.-'_.-'|         
| `-._`-._  _.-'_.-' |   http://redis.io  
 `-._ `-._`-.__.-'_.-' _.-'         
|`-._`-._ `-.__.-' _.-'_.-'|         
| `-._`-._  _.-'_.-' |         
 `-._ `-._`-.__.-'_.-' _.-'         
  `-._ `-.__.-' _.-'          
   `-._  _.-'           
    `-.__.-'            
[477] 12 Mar 16:43:30.319 # Server started,Redis version 2.6.8
[477] 12 Mar 16:43:30.319 # 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.
[477] 12 Mar 16:43:30.319 * The server is now ready to accept connections on port 6379
[root@rac1 ~]# ps -ef|grep redis
root  5930 14334 0 16:56 pts/1 00:00:02 redis-server /etc/redis_master.conf
root  7250 14334 0 17:03 pts/1 00:00:00 grep redis

啟動slave節點

[root@rac2 ~]# redis-server /etc/redis_slave.conf > redis_slave.log 2>&1 &
[1] 32507
[32507] 12 Mar 17:51:55.346 * Max number of open files set to 10032
    _._             
   _.-``__ ''-._            
  _.-`` `. `_. ''-._   Redis 2.6.8 (00000000/0) 64 bit
 .-`` .-```. ```\/ _.,)  Running in stand alone mode
|`-._`-...-` __...-.``-._|'` _.-'|  Port: 6389
| `-._ `._ /  _.-' |  PID: 32507
 `-._ `-._ `-./ _.-' _.-'         
|`-._`-._ `-.__.-' _.-'_.-'|         
| `-._`-._  _.-'_.-' |   http://redis.io  
 `-._ `-._`-.__.-'_.-' _.-'         
|`-._`-._ `-.__.-' _.-'_.-'|         
| `-._`-._  _.-'_.-' |         
 `-._ `-._`-.__.-'_.-' _.-'         
  `-._ `-.__.-' _.-'          
   `-._  _.-'           
    `-.__.-'            
[32507] 12 Mar 17:51:55.350 # Server started,Redis version 2.6.8
[32507] 12 Mar 17:51:55.350 # 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.
[32507] 12 Mar 17:51:55.350 * The server is now ready to accept connections on port 6389
[32507] 12 Mar 17:51:56.348 * Connecting to MASTER...
[32507] 12 Mar 17:51:56.349 * MASTER <-> SLAVE sync started
[32507] 12 Mar 17:51:56.495 * Non blocking connect for SYNC fired the event.
[32507] 12 Mar 17:51:57.014 * Master replied to PING,replication can continue...
[32507] 12 Mar 17:51:57.028 * MASTER <-> SLAVE sync: receiving 18 bytes from master
[32507] 12 Mar 17:51:57.029 * MASTER <-> SLAVE sync: Loading DB in memory
[32507] 12 Mar 17:51:57.037 * MASTER <-> SLAVE sync: Finished with success

[root@rac2 ~]# ps -ef|grep redis
root  321 29770 0 17:54 pts/1 00:00:00 grep redis
root  32507 29770 0 17:51 pts/1 00:00:00 redis-server /etc/redis_slave.conf

4. 驗證主從複製

master節點資料輸入

[root@rac1 ~]# telnet 192.168.2.101 6379
Trying 192.168.2.101...
Connected to rac1.localdomain (192.168.2.101).
Escape character is '^]'.
rpush data 1
:1
rpush data 1
:2
lrange data 0 -1
*2
$1
1
$1
1

slave節點驗證

[root@rac1 ~]# telnet 192.168.2.102 6389
Trying 192.168.2.102...
Connected to rac2.localdomain (192.168.2.102).
Escape character is '^]'.
lrange data 0 -1
*2
$1
1
$1
1
quit
+OK
Connection closed by foreign host.

好了,到此主從redis已經配置完成併成功運行了,Linux系統下的redis主從配置方法操作很簡單隻要接步驟認真配置基本都可以配置成功