1. 程式人生 > >redis 安裝配置學習筆記

redis 安裝配置學習筆記

環境 有時 redis監控 redis主從 net 需要 原因 dir 學習

redis 安裝配置學習筆記

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

下載最新版本

wget http://download.redis.io/redis-stable.tar.gz

首先必須要有 gcc 與 make

apt-get install gcc

apt-get install make

1、解壓

[email protected]:~# tar -xvf redis-stable.tar.gz

2、測試

[email protected]:~/redis-stable# ./runtest

You need tcl 8.5 or newer in order to run the Redis test

提示需要安裝tcl

make完成後,在原src目錄下,會生成出六個exe(可執行程序),服務端只需要redis-server.exe即可

3、運行redis

後臺方式啟動redis

./redis-server &

啟動redis客戶端鏈接

./redis-cli

輸入ping 返回pong 即為安裝成功

擴展知識:

redis-cli用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]]

-h <主機ip>,默認是127.0.0.1

-p <端口>,默認是6379

-a <密碼>,如果redis加鎖,需要傳遞密碼

--help,顯示幫助信息

如:redis-cli -h 192.168.1.103 -p 6379

考慮到redis是單線程工作,因此一般是一臺電腦上,啟動多個redis實例。

啟動方式二

使用配置文件啟動

./redis-server redis.conf &

配置示例在 src目錄的父級目錄裏有。也可以進行查找

find / -name redis.conf

4、redis主從配置

Redis的主從復制功能非常強大,一個master可以擁有多個slave,而一個slave又可以擁有多個slave,如此下去,形成了強大的多級服務器集群架構。

1).master可以有多個slave

2).除了多個slave連到相同的master外,slave也可以連接其他slave形成圖狀結構

3).主從復制不會阻塞master。也就是說當一個或多個slave與master進行初次同步數據時,master可以繼續處理client發來的請求。相反slave在初次同步數據時則會阻塞不能處理client的請求。

4).主從復制可以用來提高系統的可伸縮性,我們可以用多個slave 專門用於client的讀請求,比如sort操作可以使用slave來處理。也可以用來做簡單的數據冗余

5).可以在master禁用數據持久化,只需要註釋掉master 配置文件中的所有save配置,然後只在slave上配置數據持久化。

參考文檔:http://blog.csdn.net/done58/article/details/50997817

環境描述:
主redis:127.0.0.1 6379
從redis:127.0.0.1 6380

主配置文件:redis.conf (不用更新,重點關註下面兩個參數)

port 6379

pidfile /var/run/redis_6379.pid

從配置文件 redis2.conf (需要更改下面的參數)

port 6380

pidfile /var/run/redis_6380.pid

slaveof localhost 6379

先啟動主 再啟動從 。

redis 主從默認是讀寫分離。主為讀寫,從為讀。

主從復制過程:

1):當一個從數據庫啟動時,會向主數據庫發送sync命令,

2):主數據庫接收到sync命令後會開始在後臺保存快照(執行rdb操作),並將保存期間接收到的命令緩存起來

3):當快照完成後,redis會將快照文件和所有緩存的命令發送給從數據庫。

4):從數據庫收到後,會載入快照文件並執行收到的緩存的命令。

5、默認是讀寫分離的

6、redis 主從切換

1)停止主節點

2)切換從節點為主節點

./redis-cli -p 6380 slaveof NO ONE

3)測試從節點是否可讀寫

4)當主節點恢復工作後,要及時更新從節點,設置為主節點的從節點。

7、redis數據保存

1、快照(snapshots)

缺省情況情況下,Redis把數據快照存放在磁盤上的二進制文件中,文件名為dump.rdb。你可以配置Redis的持久化策略,例如數據集中每N秒鐘有超過M次更新,就將數據寫入磁盤;或者你可以手工調用命令SAVE或BGSAVE。

工作原理

Redis forks.

子進程開始將數據寫到臨時RDB文件中。

當子進程完成寫RDB文件,用新文件替換老文件。

這種方式可以使Redis使用copy-on-write技術。

相關參數

save 900 1

save 300 10

save 60 10000

保存的目錄

dir ./

示例:

命令

save 進行保存

scp 復制到另外一臺機器的存儲目錄,而後重新啟動那臺機器,就可以看到數據復制了。

scp dump.rdb [email protected]:/usr/local/redis/bin/
[email protected]‘s password:
dump.rdb

8、redis集群 (3.0版本以後實現的)

(個人理解:把各redis 組成一個圓,每個圓負責一部分hash槽。圓中的各節點不復制數據。 圓中的各節點均提供一個主從備份實現高可用。)

3.0之後的功能,至少需要3(Master)+3(Slave)才能建立集群,是無中心的分布式存儲架構,可以在多個節點之間進行數據共享,解決了Redis高可用、可擴展等問題。

Redis集群提供了以下兩個好處

1、將數據自動切分(split)到多個節點

2、當集群中的某一個節點故障時,redis還可以繼續處理客戶端的請求。

一個 redis 集群包含 16384 個哈希槽(hash slot),數據庫中的每個數據都屬於這16384個哈希槽中的一個。集群使用公式 CRC16(key) % 16384 來計算鍵 key 屬於哪個槽。集群中的每一個節點負責處理一部分哈希槽。

集群中的主從復制

集群中的每個節點都有1個至N個復制品,其中一個為主節點,其余的為從節點,如果主節點下線了,集群就會把這個主節點的一個從節點設置為新的主節點,繼續工作。這樣集群就不會因為一個主節點的下線而無法正常工作

註意:

1、如果某一個主節點和他所有的從節點都下線的話,redis集群就會停止工作了。redis集群不保證數據的強一致性,在特定的情況下,redis集群會丟失已經被執行過的寫命令。

2、使用異步復制(asynchronous replication)是redis 集群可能會丟失寫命令的其中一個原因,有時候由於網絡原因,如果網絡斷開時間太長,redis集群就會啟用新的主節點,之前發給主節點的數據就會丟失。

集群什麽時候會掛掉(集群是多個master組成的圓,各master有多個salve)

a:如果集群任意master掛掉,且當前master沒有slave.集群進入fail狀態,也可以理解成進群的slot映射[0-16383]不完成時進入fail狀態.

b:如果進群超過半數以上master掛掉,無論是否有slave集群進入fail狀態

redis 集群實戰參數地址:http://blog.csdn.net/myrainblues/article/details/25881535/

9、redis監控

http://blog.csdn.net/u011204847/article/details/51307044

redis 安裝配置學習筆記