Redis應用--Redis-cluster集群部署

      網友投稿 1008 2022-05-30

      一、簡述

      Redis經過快速的更新迭代已經到了6.0版本,在redis3.0的時代,加入了cluster集群的原生功能。本文不去介紹和對比主從、哨兵、cluster這三種之間的差異和為什么要選擇cluster,只是簡述下我在部署redis-cluster集群的時候一些步驟和碰到的一些問題。

      Redis-cluster在經歷了3.0/4.0/5.0的更迭之后,已經不需要使用redis-trib.rb命令去創建集群了,改用redis-cli創建,并且修復了一些bug吧,比如redis-4.0.x.gem新增節點之后,不能把已經存儲數據的master節點的slot分配給新節點。

      Redis 5.0使用redis-cli作為創建集群的命令,使用c語言實現,不再使用ruby語言,所以可以不用像3.0和4.0時候,為了使用redis-trib.rb命令而安裝ruby。不過這篇文章主要以4.0為主,5.0操作和4.0一樣,只是創建集群的時候,使用的命令有一些不一樣而已。

      這是我做的一個各種搭建方式的對比:《Redis應用--Redis搭建方式總結》

      二、Redis集群部署

      1.部署環境

      系統環境:centos7.5.1804

      服務版本:redis-4.0.14(截止文章發布前最新版本)

      Redis應用--Redis-cluster集群部署

      注意:演示的集群部署是使用的但臺機器部署六臺甚至更多redis服務的形式創建的redis集群,正常生產環境需要六臺物理機去分別部署每一個redis服務。

      2.安裝Redis服務

      cd /usr/local/src/ wget http://download.redis.io/releases/redis-4.0.14.tar.gz tar xzf redis-4.0.14.tar.gz cd redis-4.0.14 make make install PREFIX=/usr/andy/redis-cluster cp -a redis.conf /usr/local/redis-cluster/bin/ cp -a /usr/local/redis-cluster/bin/ /usr/local/redis-cluster/redis01

      修改redis01/redis.conf配置,可以找到下面相應的配置項進行修改,也可以只保留下面的配置項。

      #vim redis01/redis.conf daemonize yes port 7001 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes #正常應該是ip地址的,不能寫回環地址 bind 192.168.180.192

      將bin目錄復制到六份,一定要修改每一個目錄redis配置文件的端口號。

      注意:這里bind我用了內網地址,因為此集群部署是在單挑機器模擬的,所以也可以填寫127.0.0.1。

      3.redis-trib所需的Ruby腳本

      # 將創建集群的腳本復制到redis安裝目錄中 cp -a /usr/local/src/redis-4.0.14/src/redis-trib.rb /usr/local/redis-cluster/ ##安裝ruby,因為我使用的是redis4.0.14版本,現有的centos服務源中并沒有高版本的ruby支持,所以需要先安裝其他源 yum install centos-release-scl-rh yum -y install rh-ruby23 #以下這條命令是進入ruby23的環境中,不使用這個環境的時候可以輸入exit命令退出來。 scl enable rh-ruby23 bash #查看安裝的ruby版本 ruby -v #安裝redis-trib.rb運行依賴的ruby的包redis gem install redis #安裝之后會有如下提示 #Successfully installed redis-4.1.4 #Parsing documentation for redis-4.1.4 #Done installing documentation for redis after 0 seconds #1 gem installed

      4.編寫簡單的啟動Redis腳本

      腳本內容如下

      #vim start_redis.sh cd redis01 ./redis-server redis.conf cd .. cd redis02 ./redis-server redis.conf cd .. cd redis03 ./redis-server redis.conf cd .. cd redis04 ./redis-server redis.conf cd .. cd redis05 ./redis-server redis.conf cd .. cd redis06 ./redis-server redis.conf cd .. ##使用腳本啟動redis服務 bash start_redis.sh ## 檢查是否啟動 ps -ef | grep redis-server |grep -v grep

      執行上面命令之后如果redis服務在啟動,會有如下內容,這樣就能判斷redis服務都已經啟動了

      root 9625 1 0 6月04 ? 00:11:30 ./redis-server 192.168.180.192:7001 root 9760 1 0 6月04 ? 00:11:38 ./redis-server 192.168.180.192:7002 root 9779 1 0 6月04 ? 00:11:49 ./redis-server 192.168.180.192:7003 root 9796 1 0 6月04 ? 00:11:36 ./redis-server 192.168.180.192:7004 root 9854 1 0 6月04 ? 00:11:33 ./redis-server 192.168.180.192:7005 root 9870 1 0 6月04 ? 00:11:34 ./redis-server 192.168.180.192:7006

      5.創建集群

      注意:redis-trib.rb是redis3和redis4使用的創建cluster的方式,redis5中使用的自帶的命令redis-cluster

      ./redis-trib.rb create --replicas 1 192.168.180.192:7001 192.168.180.192:7002 192.168.180.192:7003 192.168.180.192:7004 192.168.180.192:7005 192.168.180.192:7006 # 使用create命令 --replicas 1 參數表示為每個主節點創建一個從節點,其他參數是實例的地址集合。

      以上命令執行完畢之后,在屏幕中有提示創建是否完成,創建完成之后的cluster集群狀態。可以看到是三個M的id和其從id和三個S的id和其主id。

      在redis5 中創建的方式如下:

      cd /usr/local/src/redis-5.0.2/utils/create-cluster # 啟動 ./create-cluster start # 創建 ./create-cluster create # 停止 ./create-cluster stop # 查看狀態 ./create-cluster watch ##當然redis5中還有一種方式,redis-cli命令創建rediscluster集群和redis4的差不多,有興趣可以自行百度搜索redis5的cluster集群創建,在此不再贅述、

      6.測試集群

      ./redis-cli -c -h 192.168.180.192 -p 7001

      使用以下命令測試會看到設置key的時候,從7001這個redis服務自動切換到7004這個redis服務

      7.模擬集群故障

      可以試著將一個Master redis服務停掉,然后檢查是否有它的從被選舉成主。

      然后在將停掉的redis服務啟動,觀察是否會自動加入集群,然后加入集群之后它是mstar還是slave,如果是salve的話,它的master是誰,都可以觀察下。

      當然還可以添加redis-cluster集群的主從節點,刪除redis-cluster主從節點。在此不再去詳盡的描述了。可以查看這篇文章Redis Cluster集群

      在公司的企業架構出去選項的時候,如果選擇了Redis-cluster的話,做決定的時候,就回去定使用多少主從節點。當流量激增等的時候,才會考慮增加節點等內容。

      注意:redis4版本添加節點的時候,可能會有命令的問題。可以查看下這篇文章redis 集群新增節點【ERR】?官方文檔推薦使用高版本的redis,比如redis5去創建集群.

      Redis

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:原來excel這么厲害,還可以用來開發游戲、制作管理系統?
      下一篇:爬蟲管理平臺Crawlab v0.4.1發布(可配置爬蟲)
      相關文章
      国产中文在线亚洲精品官网| 色窝窝亚洲AV网在线观看| 亚洲av日韩综合一区二区三区| 亚洲视频在线观看地址| 亚洲av永久无码精品网站| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲成av人在线观看网站| 亚洲国产熟亚洲女视频| 亚洲Av无码一区二区二三区| 亚洲另类精品xxxx人妖| 亚洲一区中文字幕在线电影网 | 久久亚洲一区二区| 久久久久久a亚洲欧洲AV| 亚洲av永久无码制服河南实里| 国产亚洲精品自在久久| 精品久久香蕉国产线看观看亚洲| 亚洲精品国产自在久久| 亚洲精品无码永久在线观看| 亚洲日韩中文字幕日韩在线| 亚洲区不卡顿区在线观看| 亚洲人成人网站在线观看| 久久久青草青青国产亚洲免观 | 亚洲国产高清美女在线观看| 亚洲国产中文在线二区三区免| 亚洲一区二区三区四区视频| jiz zz在亚洲| 亚洲国产精品无码久久| 色婷婷六月亚洲综合香蕉| jizzjizz亚洲日本少妇| 国产精品亚洲lv粉色| 国内成人精品亚洲日本语音 | 亚洲av中文无码乱人伦在线r▽| 亚洲一区二区三区四区在线观看| 亚洲首页在线观看| 亚洲一区二区三区免费在线观看| 亚洲狠狠色丁香婷婷综合| 无码一区二区三区亚洲人妻| 亚洲午夜成人精品电影在线观看| 狠狠综合久久综合88亚洲| 久久亚洲精品成人777大小说| 亚洲黄色在线视频|