redis 安裝配置學習筆記
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 安裝配置學習筆記