單機版本
由於redis是c++寫的,咱們首先須要安裝c++環境node
1.在linux安裝c++源碼編譯器 須要聯網
linux輸入yum -y install gcc gcc-c++linux
2.官網下載redis源碼包redis-4.0.10.tar
3.使用xftp將redis-4.0.10.tar上傳到linux 協議用xftp不然連不上
4.解壓
若是沒有權限 使用c++
chmod +x redis壓縮包 給可執行權限redis
5.進入解壓目錄。看是否有markFile目錄 若是沒有則本身建立一個
6.執行make進行編譯
7.編譯完成後將src下面的redis-server、redis-benchmark、redis-cli和redis.conf。而後拷貝到一個目錄下。、
8.將redis設置爲後臺啓動 vi編輯器編輯redis.conf 使用/daemonize 收縮找到 改成yes
9. ./redis-server redis.conf 啓動
10.使用ps aux|grep redis查看是否啓動成功
11.使用telnet測試是否能鏈接
12.開放對外端口
(可能遇到的問題https://blog.csdn.net/csdn_lqr/article/details/53885808)算法
iptables -I INPUT -p tcp --dport 6379 -j ACCEPTruby
12.iptables -L INPUT -n --line-numbers 查看是否開放成功
13.端口改成本機ip
集羣版本
架構
3臺主服務器 服務器
redis內置16384 個哈希槽 會根據redis集羣的數量 將這些hash槽均勻分配到每一個集羣節點上。
當咱們經過命令存取數據的時候
redis
先對
key
使用
crc16
算法算出一個結果,而後把結果對
16384
求餘數 算出(0-16384之間的數字)而後經過這個數字知道 值放在哪臺服務器上
hash槽也能夠根據每一個節點的內存 來進行分配 好比一臺機器內存比較少 那麼槽的數量就分少一點
若是其中一個主節點徹底掛掉了 那麼整個集羣也掛掉了
好處
集羣架構模型主要用來緩解寫入性能架構
1.複製單機版客戶端6份
2.修改每一個redis的redis.conf端口改成不一致 6379 6380 6381 6382 6383 6384 同時取消cluster-enable=yes註釋 表示集羣節點
3.建立批處理啓動和關閉程序腳本
3.給新加的2個文件可執行權限
chmod +x start-all.shtcp
4.測試啓動執行start-all.sh
5.查看是否啓動成功
6.執行批量關閉的sh ./shutdown-all.sh 並查看redis的狀態
7.開放全部端口對外訪問權限
iptables -I INPUT -p tcp --dport 6379 -j ACCEPT編輯器
7.安裝rvm ruby
參考https://blog.csdn.net/zzzcl112/article/details/80531792(redis腳本 src目錄下 redis-trip.rb是基於ruby寫的)
8安裝 ruby須要的redis接口gem install redis
8 ./redis-trib.rb create 192.168.65.128:6379 192.168.65.128:6380 192.168.65.128:6381
先建立3個主節點(去安裝目錄src下執行redis-trib.rb)
9.經過其中一個主節點查看集羣節點./redis-trib.rb info 192.168.65.128:6379
主從複製模型
在原來的集羣架構上 每一個主節點增長3個從節點。防止其中一臺主服務器掛掉了 致使集羣 宕機 ,當主服務器掛了後 從服務器自動提高爲主
集羣版咱們新增了redis4 redis5 redis6 分別對應 redis1 redis2 redis3 的從節點
1.分別修改從節點的redis.conf 指定失聯時間 超過期間則爲故障節點 通常設置爲15秒
還有就是設置多個讀 緩解讀性能
2.啓動全部redis節點
3.將從節使用redis-trip.rb加入到集羣
./redis-trib.rb add-node 192.168.65.128:6382 192.168.65.128:6379 6382是從節點 對應主節點是6379 經過他能夠找到6379的集羣
4.查看集羣中的節點
./redis-trib.rb info 192.168.65.128:6379
能夠發現多了一個節點 並無分配hash槽 上面這裏只是將從節點加入到了集羣 並無指定主節點
5.使用redis-cli登錄從節點並使用指定他的主節點
./redis-cli -h 192.168.65.128 -p 6382
輸入cluster nodes 找到主節點的id
6.經過id指定當前節點的主節點 cluster replicate e10dde558fb46fe8ae6fe66e54ef56032fbcce0f
7.查看是否分配成功
各個集羣節點都有一個從節點
8.其餘2個從節點重複此操做
9.最終的各個集羣節點
10.使用kill殺死主節點進程
關閉6379
15秒後 配置文件配置的15秒。。能夠發現6379的從節點切回了主節點