1. 程式人生 > >基於哨兵【sentinel】模式的redis服務叢集並與spring整合

基於哨兵【sentinel】模式的redis服務叢集並與spring整合

       最近接手了一個PHP老專案,裡面用到了redis快取,基於sentinel模式的叢集。專案裡面redis的連線讀寫都是用PHP實現的,並把不同的資訊儲存於不同的dbindex下,即分db儲存內容。看了下,由於本人是搞Java的,決定用Java進行重構。於是就進行一遍完整的基於sentinel模式redis的叢集搭建,並集成於spring。以下為具體的實施過程。

 一、redis的下載安裝部分

本次使用的redis版本為3.0.7,下載地址:http://download.redis.io/releases/redis-3.0.7.tar.gz 

redis的安裝過程請參考我的上一篇博文,地址:http://blog.csdn.net/zh520qx/article/details/50977678

二、叢集配置部分

1、本次實驗為單機偽叢集,redis為1個master、2個slave,3個哨兵sentinel

2、redis具體引數配置如下:

redis-master的配置redis.conf:

- pidfile /var/run/redis-6379.pid  #[程序檔案]

- port 6379  #[埠]

- bind 192.168.1.102  #[繫結的IP]

- requirepass joeffy #[讀寫前的密碼校驗]

----------------------------------------------------------------------------------------------------------------------------------------------

redis-slave1的配置redis.conf:

- pidfile /var/run/redis-7000.pid  #[程序檔案]

- port 7000  #[埠]

- slaveof 192.168.1.102 6379 #[指定主節點的IP、埠]

- masterauth joeffy #[主節點連線提製校驗]

- requirepass joeffy #[讀寫前的密碼校驗]

----------------------------------------------------------------------------------------------------------------------------------------------

redis-slave2的配置redis.conf:

- pidfile /var/run/redis-7001.pid  #[程序檔案]

- port 7001  #[埠]

- slaveof 192.168.1.102 6379 #[指定主節點的IP、埠]

- masterauth joeffy #[主節點連線提製校驗]

- requirepass joeffy #[讀寫前的密碼校驗]

-----------------------------------------------------------------------------------------------------------------------------------------------

上面為redis服務的引數配置,主從節點的配置區別為上面標紅的兩行引數,其他引數可視具體情況配置或預設。

3、sentinel哨兵的引數配置

哨兵1的引數配置sentinel.conf:

- port 26379

- sentinel monitor mymaster 192.168.1.102 6379 2

- sentinel auth-pass mymaster joeffy

------------------------------------------------------------------------------------------------------------------------------------------------

哨兵2的引數配置sentinel.conf:

- port 27000

- sentinel monitor mymaster 192.168.1.102 6379 2

- sentinel auth-pass mymaster joeffy

------------------------------------------------------------------------------------------------------------------------------------------------


哨兵3的引數配置sentinel.conf:

- port 27001

- sentinel monitor mymaster 192.168.1.102 6379 2

- sentinel auth-pass mymaster joeffy

------------------------------------------------------------------------------------------------------------------------------------------------

sentinel其他引數可視具體情況配置或預設。

4、啟動redis及哨兵服務,測試叢集結果

先啟動redis,再啟動sentinel

啟動redis-matser:./redis-server ../redis-6379/conf/redis.conf &

啟動redis-slave1:./redis-server ../redis-7000/conf/redis.conf &

啟動redis-slave2:./redis-server ../redis-7001/conf/redis.conf &

啟動sentinel1:./redis-sentinel ../redis-6379/conf/sentinel.conf --sentinel &

啟動sentinel2:./redis-sentinel ../redis-7000/conf/sentinel.conf --sentinel &

啟動sentinel3:./redis-sentinel ../redis-7001/conf/sentinel.conf --sentinel &

檢視服務啟動情況:ps -ef|grep redis,若正確啟動,如下圖所示:


驗證叢集可用性:

用redis客戶端,隨意連線一個sentinel,,命令如:redis-cli -h 192.168.1.102 -p 26379 -a joeffy

連線成功後,執行如下命令sentinel masters,檢視主節點如下圖:


執行命令sentinel slaves mymaster,檢視從節點:


讀寫驗證就不截圖了,各位可自行驗證,至此基於sentinel模式的redis叢集已經結束。

三、整合spring

spring配置:

 



redis.properties配置:


測試程式碼:


測試結果:


至此,基於sentinel的redis叢集,並整合spring結束。

相關推薦

基於哨兵sentinel模式redis服務集並spring整合

       最近接手了一個PHP老專案,裡面用到了redis快取,基於sentinel模式的叢集。專案裡面redis的連線讀寫都是用PHP實現的,並把不同的資訊儲存於不同的dbindex下,即分db儲存內容。看了下,由於本人是搞Java的,決定用Java進行重構。於是就進

基於哨兵Sentinel模式搭建Redis叢集搭建

這篇文章主要是想把自己搭建Redis哨兵模式叢集的過程記下來,方便後面搭建的重複性工作。 首先一點,學習任何知識都要學會看官網,所以,可以參考官網進行配置。我為了省事兒,參照了公司的規範來搭建的。官網地址:https://redis.io/ 有個官方下載地址,可以直接下載各

springboot spring mybatis看我怎麼將springbootspring整合mybatisdruid資料來源

# 概述 本文分別講述了`spring`與`springboot`是怎麼整合`mybatis`與`druid`資料來源的?如果你只是想實現其中一種,那你就不要把他們的配置過程搞混了。 ## 1、mybatis `MyBatis` 本是apache的一個開源專案iBatis, 2010年這個專案由apache

Redis哨兵Sentinel模式

主從切換技術的方法是:當主伺服器宕機後,需要手動把一臺從伺服器切換為主伺服器,這就需要人工干預,費事費力,還會造成一段時間內服務不可用。這不是一種推薦的方式,更多時候,我們優先考慮哨兵模式。 一、哨兵模式概述 哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個獨

基於SpringBoot的微服務Jenkins自動化部署

基於【SpringBoot】的微服務【Jenkins】自動化部署   一、關於自動化部署   關於自動化部署的優點,我就不在這裡贅述了;只要想想手工打包、上傳、部署、重啟的種種,就會有很多場景歷歷在目,相信經歷過的朋友都能體會其中的酸甜苦辣; 而一旦到了大型專案,比如所微服務化之後的

原創大話微服務中的邊車模式

imp 方式 網格 註冊中心 code -a pri 程序 cat (以下故事純屬虛構,如有雷同純屬巧合) 概念 自從微服務的浪潮席卷了煙哥的公司之後,煙哥的領導內心蠢蠢欲動,指派煙哥去將公司的傳統服務架構改成微服務架構!於是煙哥就喊上了小劉到了一個僻靜的角落探討如何實施!

Redis哨兵Sentinel模式快速入門

更多內容,歡迎關注微信公眾號:全菜工程師小輝。公眾號回覆關鍵詞,領取免費學習資料。 當主伺服器宕機後,需要手動把一臺從伺服器切換為主伺服器,這就需要人工干預,費事費力,還會造成一段時間內服務不可用。 所以更多時候,我們優先考慮哨兵(sentinel) 模式。 Redis sentinel是Redis高可用實現

5JMicro微服務基於RSA及AES加密實現安全服務呼叫

JMicro是基於Java實現的微服務平臺,最近花了兩個周未實現服務間安全呼叫支援。 JMicro服務呼叫分兩個部份,分別為內部服務間相互呼叫和外部客戶端通過API閘道器呼叫JMicro叢集內部服務,前者支援雙向加密加簽,並且支援全RSA加密(效率底,安全性高)及RSA+AES混合加密解密,後者只支援RSA+

Azure Redis 快取Azure Redis 服務不支援指令CONFIG

問題描述 在Azure Redis的門戶頁面中,通過Redis Console連線到Redis後,想通過CONFIG命令來配置Redis,但是系統提示CONFIG命令不能用。 錯誤訊息為:(error) ERR unknown command `config`。   根本原因 因為 Azure R

Java一臺服務器配置多個Tomcat

shu 找到 通過 下載 ref connect 解決方案 .gz header 需求緣由 最近接收了一個新的工具業務:ipublish發布系統,剛接手這個業務的時候,發現每次發布新的代碼 需要到群裏告知大家,我要停服務幾分鐘,準備更新代碼啦。這尼瑪 哪個公司

提升tomcat服務器性能的七條經驗

ipv tde 內核 兩個 backlog 完成 退出 追加 大量數據 在線上環境中我們是采用了tomcat作為Web服務器,它的處理性能直接關系到用戶體驗,在平時的工作和學習中,歸納出以下七種調優經驗。 1. 服務器資源 服務器所能

MMORPG遊戲服務器技能系統設計:表格字段技能程序框架

pac 扇形 def 邏輯 imageview rip ner -s 來源 本文主要從一個程序員的角度闡述一下mmorpg服務器技能系統的程序框架設計,最近在做這個,就當做一個總結吧,其中某些概念可能沒有解釋清楚,歡迎大家拍磚討論~ 技能其實是戰鬥系統的一個組成部分,戰鬥

網遊服務器的布局

討論 相對 網路 order 包括 family 處理 單獨 spa 轉自 http://blog.csdn.net/clodfront/article/details/6555717 關於網遊服務器的分類和布局的問題是在網絡遊戲中比較關鍵的部分, 首先我們討

scrapyscrapy-redis 全國建築市場基本信息采集

redis callback ids super call connect info turn 一個 簡介 環境: python3.6    scrapy 1.5 使用scrapy-redis 開發的分布式采集demo。一次簡單的例子,供初學者參考(覺得有更好的方式

gRPC的服務配置

false IT load 用戶 com 大於 例如 相關 dev 原文地址:https://github.com/grpc/grpc/blob/master/doc/service_config.md gRPC的服務配置 目標 服務配置是一種允許服務擁有者去發布參數以

Docker學習筆記安裝Redis

art port 再次 dock 使用 contain bash Go red 項目中使用到Redis,平常都是別人搭建的,今天試著在Google Cloud Platform 上搭建一個學習環境。 1.使用 docker pull redis 從docker hub中下載

Red5流服務器搭建(實現在線直播,流媒體視頻播放和在線視頻會議)

htm tps 實現 gho 共享 麥克風 一個 編碼工具 localhost 來自:http://blog.csdn.net/sunroyi666/article/details/52981639 一. 先介紹一下流媒體技術:所謂流媒體技術,是指將連續的影像和聲音信息經過

考研模式匹配

class spa index ont else substr return 指向 pan ①簡單的模式匹配 int index(Str str,Str Substr) { int i=1,j=1,k=i; while(i<=str.length&a

SpringCloud06——Fegin服務間呼叫,負載均衡

1.什麼是Feign Feign是一個宣告式的Web服務客戶端 使用:只需建立一個介面,然後在上面添加註解即可實現服務間呼叫,Feign是集成了Ribbon,也可實現負載均衡。 2.Feign 和Ribbon區別? Ribbon 是一個基於 HTTP 和 TCP 客戶端的負載均衡器

SpringCloud03——Eureka服務註冊

1.什麼是Eureka? Ereka相當於zookeeper,是服務註冊中心,當專案中微服務越來越多時,需要進行服務間呼叫,這時就需要將微服務都註冊進入Eureka,服務之間可以互相發現,然後才可以進行呼叫. 系統中的其他微服務,使用Eureka 客戶端連線到Eureka Server並