天天看點

redis 伺服器的安裝、主從複制的搭建

redis 伺服器安裝

進入下載下傳目錄

cd /usr/local/ 

下載下傳軟體包

wget  http://download.redis.io/releases/redis-3.2.4.tar.gz

解壓縮

tar zxvf redis-3.2.4.tar.gz && cd redis-3.2.4 

編譯

make && make test 

cd /usr/local/redis-3.2.4 && make install 

建立redis配置檔案存放目錄

mkdir -p /usr/local/redis-6379/conf 

 cp /usr/local/redis-3.2.4/redis.conf  /usr/local/redis-6379/conf 

建立可執行程式的目錄

mkdir -p /usr/local/redis-6379/sbin

cd /usr/local/redis-3.2.4/src/

cp redis-cli redis-sentinel mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb  redis-server redis-trib.rb /usr/local/redis-6379/sbin 

編寫啟動腳本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

<code>#!/bin/bash</code>

<code>source</code> <code>/etc/profile</code>

<code>REDISPORT=6379</code>

<code>EXEC=</code><code>/usr/local/redis-6379/sbin/redis-server</code>

<code>REDIS_CLI=</code><code>/usr/local/redis-6379/sbin/redis-cli</code>

<code>PIDFILE=</code><code>/var/run/redis_6379</code><code>.pid</code>

<code>CONF=</code><code>" /usr/local/redis-6379/conf/redis.conf "</code>

<code>AUTH=</code><code>"1234"</code>

<code>BIND_IP=</code><code>'127.0.0.1'</code>

<code>case</code> <code>"$1"</code> <code>in</code>

<code>       </code><code>start)</code>

<code>            </code><code>if</code> <code>[ -f $PIDFILE ]</code>

<code>            </code><code>then</code>

<code>                 </code><code>echo</code> <code>"$PIDFILE is exists"</code>

<code>                 </code><code>exit</code> <code>1</code>

<code>             </code><code>else</code>

<code>                 </code><code>echo</code> <code>"start redis server"</code>

<code>                 </code><code>$EXEC $CONF &amp;</code>

<code>             </code><code>fi</code>

<code>             </code><code>if</code> <code>[ </code><code>"$?"</code><code>=</code><code>"0"</code> <code>]</code>

<code>              </code><code>then</code> 

<code>                  </code><code>echo</code> <code>"Redis is running...."</code>

<code>              </code><code>;;</code>

<code>       </code><code>stop)</code>

<code>           </code><code>if</code> <code>[ ! -f $PIDFILE ]</code>

<code>           </code><code>then</code> 

<code>                </code><code>echo</code> <code>"$PIDFILE exists,process is not running "</code>

<code>                </code><code>exit</code> <code>1</code>

<code>            </code><code>else</code> 

<code>                </code><code>PID=$(</code><code>cat</code> <code>$PIDFILE )</code>

<code>                </code><code>echo</code> <code>"stoping Redis ...."</code>

<code>             </code><code>$REDIS_CLI -h $BIND_IP -a $AUTH -p $REDISPORT SHUTDOWN</code>

<code>             </code><code>sleep</code> <code>3</code>

<code>            </code><code>if</code> <code>[ ! -f $PIDFILE   ]</code>

<code>             </code><code>then</code> 

<code>             </code><code>echo</code> <code>“stop Redis success ”      </code>

<code>            </code><code>fi</code>

<code>          </code> 

<code>           </code><code>*)</code>

<code>            </code><code>echo</code> <code>"Usage:redis_control.sh{start|stop}"</code>

<code>            </code><code>exit</code> <code>1</code>

<code>esac</code>

登入

./redis-cli -p 6379 

模拟插入資料

127.0.0.1:6379&gt; set test hello

OK

檢視

127.0.0.1:6379&gt; get test

"hello"

redis 主從搭建

1、使用類似的方法搭建redis 從伺服器、設定從伺服器的端口号為 6380 

2、以6379端口号的redis 伺服器為主伺服器,6380 伺服器為從伺服器

3、修改redis 從伺服器的配置 

在從伺服器上添加如下配置

# slaveof &lt;masterip&gt; &lt;masterport&gt;

slaveof 127.0.0.1 6379

masterauth 1234  ##備注如果master 伺服器有密碼的話需要加上

測試主從

檢視master 上的資訊

<code># Replication</code>

<code>role:master</code>

<code>connected_slaves:1</code>

<code>slave0:ip=127.0.0.1,port=6380,state=online,offset=4321,lag=1</code>

<code>master_repl_offset:4321</code>

<code>repl_backlog_active:1</code>

<code>repl_backlog_size:1048576</code>

<code>repl_backlog_first_byte_offset:2</code>

<code>repl_backlog_histlen:4320</code>

檢視 slave 上的資訊

<code>role:slave</code>

<code>master_host:127.0.0.1</code>

<code>master_port:6379</code>

<code>master_link_status:up</code>

<code>master_last_io_seconds_ago:7</code>

<code>master_sync_in_progress:0</code>

<code>slave_repl_offset:4601</code>

<code>slave_priority:100</code>

<code>slave_read_only:1</code>

<code>connected_slaves:0</code>

<code>master_repl_offset:0</code>

<code>repl_backlog_active:0</code>

<code>repl_backlog_first_byte_offset:0</code>

<code>repl_backlog_histlen:0</code>

測試資料是否正常

master 

127.0.0.1:6379&gt; set test1 hi

127.0.0.1:6379&gt; get test1

"hi"

slave

127.0.0.1:6380&gt; get test1

測試正常,主從搭建完成

本文轉自 水滴石川1 51CTO部落格,原文連結:http://blog.51cto.com/sdsca/1911171,如需轉載請自行聯系原作者

繼續閱讀