redis-運維-redis單機和集群


單機版本

因為redis是c++寫的,我們首先需要安裝c++環境

1.在linux安裝c++源碼編譯器 需要聯網

  linux輸入yum -y install gcc gcc-c++

2.官網下載redis源碼包redis-4.0.10.tar

3.使用xftp將redis-4.0.10.tar上傳到linux  協議用xftp否則連不上

4.解壓

如果沒有權限 使用

chmod +x  redis壓縮包  給可執行權限

5.進入解壓目錄。看是否有markFile目錄 如果沒有則自己創建一個

6.執行make進行編譯

7.編譯完成后將src下面的redis-server、redis-benchmark、redis-cli和redis.conf。然后拷貝到一個目錄下。、

8.將redis設置為后台啟動  vi編輯器編輯redis.conf  使用/daemonize  收縮找到 改為yes

是否后台運行 默認為no

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 ACCEPT

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.sh

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的從節點切回了主節點

一些命令

模糊刪除

./redis-cli -h ip -p port -a password -n db KEYS prm:activity:booking:limit:* | xargs redis-cli -h ip -p port -a password -n db  DEL

會先連接rediskeys模糊查詢出所有key 再連接redis進行刪除 生產別這樣使用 會阻塞redis  測試環境清key使用

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM