最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Redis哨兵模式高可用解決方案

 更新時(shí)間:2022年03月01日 10:03:42   作者:Java知識(shí)圖譜  
Redis高可用有兩種模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主兩從三哨兵Redis高可用服務(wù),感興趣的可以了解一下

一、序言

Redis高可用有兩種模式:哨兵模式集群模式,本文基于哨兵模式搭建一主兩從三哨兵Redis高可用服務(wù)。

1、目標(biāo)與收獲

一主兩從三哨兵Redis服務(wù),基本能夠滿足中小型項(xiàng)目的高可用要求,使用Supervisor監(jiān)控并管理Redis實(shí)例。通過本文將完成如下目標(biāo):

  • 哨兵模式服務(wù)規(guī)劃與搭建

哨兵模式服務(wù)相比于單機(jī)版服務(wù)更加可靠,適合讀寫分離、數(shù)據(jù)量不是很大、要求可靠穩(wěn)定性的場(chǎng)景。

  • 客戶端整合與讀寫分離

通過Spring框架對(duì)哨兵模式進(jìn)行連接,完成生產(chǎn)環(huán)境的常見操作。

2、端口規(guī)劃

端口規(guī)劃是完成本方案的第一步。

二、單機(jī)模擬

單機(jī)模擬是指在單臺(tái)物理機(jī)或者虛擬機(jī)上模擬操作,最大化還原本方案中間過程,適用于學(xué)習(xí)或者開發(fā)階段使用。

為了簡(jiǎn)化操作,Redis服務(wù)做如下約定:數(shù)據(jù)不持久化到磁盤;服務(wù)實(shí)例以前臺(tái)進(jìn)程方式運(yùn)行;節(jié)點(diǎn)的配置文件以默認(rèn)配置文件為模版;無密碼驗(yàn)證。

(一)服務(wù)規(guī)劃

1、Redis實(shí)例

服務(wù)在第一次啟動(dòng)時(shí)明確知道第幾個(gè)節(jié)點(diǎn)是master節(jié)點(diǎn),當(dāng)服務(wù)在長(zhǎng)期運(yùn)行并發(fā)生主從切換時(shí),無法顯示知道第幾個(gè)節(jié)點(diǎn)是master節(jié)點(diǎn),需要通過命令行間接查詢。

節(jié)點(diǎn)主機(jī)端口角色額外配置
node01127.0.0.16380第一次啟動(dòng)時(shí)作為master服務(wù) 
node02127.0.0.16381第一次啟動(dòng)時(shí)作為slave服務(wù)replicaof 127.0.0.1 6380
node03127.0.0.16382第一次啟動(dòng)時(shí)作為slave服務(wù)replicaof 127.0.0.1 6380

額外配置指第一次啟動(dòng)Redis服務(wù)實(shí)例時(shí),節(jié)點(diǎn)配置文件中新增配置。

2、哨兵服務(wù)

哨兵服務(wù)節(jié)點(diǎn)之間沒有主從的區(qū)別,所有節(jié)點(diǎn)處于平等地位。當(dāng)主服務(wù)異常時(shí),哨兵服務(wù)之間會(huì)喚醒投票策略,從Redis實(shí)例從節(jié)點(diǎn)選擇主服務(wù)的候選人。

節(jié)點(diǎn)主機(jī)端口額外配置
node01127.0.0.126380sentinel monitor mymaster 127.0.0.1 6380 2
node02127.0.0.126381sentinel monitor mymaster 127.0.0.1 6380 2
node03127.0.0.126382sentinel monitor mymaster 127.0.0.1 6380 2

(二)服務(wù)配置

1、Redis實(shí)例

節(jié)點(diǎn)的初始配置文件以默認(rèn)配置文件為模版。

node01、node02初始化配置文件之后,顯示指明節(jié)點(diǎn)間的主從關(guān)系,增加如下配置:

replicaof 127.0.0.1 6380

2、哨兵服務(wù)

節(jié)點(diǎn)的初始配置文件以默認(rèn)配置文件為模版。

node01、node02、node03初始化配置文件后,增加如下配置:

sentinel monitor mymaster 127.0.0.1 6381 2

(三)服務(wù)管理

測(cè)試或者學(xué)習(xí)時(shí),建議采用前臺(tái)進(jìn)程管理服務(wù),便于模擬單點(diǎn)故障、查看日志觀察主從切換。

生產(chǎn)條件下建議使用Supervisor管理服務(wù),不僅易于管理而且能夠?qū)崿F(xiàn)服務(wù)異常終止后自動(dòng)重啟。高可用場(chǎng)景下使用的是三臺(tái)物理機(jī)。

1、Redis實(shí)例

/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis80.conf --port 6380 --save '' --daemonize no 
/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis81.conf --port 6381 --save '' --daemonize no
/usr/local/redis/bin/redis-server /usr/local/redis/conf/ms/redis82.conf --port 6382 --save '' --daemonize no

2、哨兵服務(wù)

/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel280.conf --port 26380 --daemonize no
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel281.conf --port 26381 --daemonize no
/usr/local/redis/bin/redis-sentinel /usr/local/redis/conf/ms/sentinel282.conf --port 26382 --daemonize no

三、客戶端整合

客戶端實(shí)現(xiàn)是指基于SpringBoot的整合分為兩步實(shí)現(xiàn):一是完成作為基礎(chǔ)的整合;二是結(jié)合生產(chǎn)需要補(bǔ)充新特性。

(一)基礎(chǔ)整合

基礎(chǔ)整合的內(nèi)容是以Java客戶端連接高可用哨兵模式Redis服務(wù),實(shí)現(xiàn)單節(jié)點(diǎn)故障服務(wù)正常運(yùn)行的要求。

1、全局配置文件

全局配置文件添加的配置信息有:master參數(shù)為哨兵服務(wù)名,此處為默認(rèn)值;nodes參數(shù)為哨兵服務(wù)列表(不是Redis實(shí)例服務(wù)列表);database參數(shù)為數(shù)據(jù)庫(kù)。

spring:
  redis:
    database: 0
    sentinel:
      nodes: 192.168.181.171:26380,192.168.181.171:26381,192.168.181.171:26382
      master: mymaster

2、集成配置

集成進(jìn)SpringBoot體系,最核心的是創(chuàng)建LettuceConnectionFactory連接工廠,通過Redis連接工廠,能夠順利繼承進(jìn)Spring體系下其他框架。

@Configuration
public class RedisSentinelConfig {
    @Autowired
    private RedisProperties redisProperties;
    
    @Bean
    public RedisConnectionFactory lettuceConnectionFactory() {
        RedisProperties.Sentinel sentinel = redisProperties.getSentinel();
        HashSet<String> nodes = new HashSet<>(sentinel.getNodes());
        String master = sentinel.getMaster();
        RedisSentinelConfiguration config = new RedisSentinelConfiguration(master, nodes);
        config.setDatabase(redisProperties.getDatabase());
        return new LettuceConnectionFactory(config);
    }
}

(二)讀寫分離

基礎(chǔ)整合僅僅是實(shí)現(xiàn)了高可用Redis服務(wù)的流程,生產(chǎn)環(huán)境下仍需要增加其他配置:修改自定義連接數(shù)據(jù)庫(kù)序號(hào);授權(quán)連接;連接池配置;讀寫分離。

在高可用前提下,衍生出讀寫分離的特性,主庫(kù)完成寫請(qǐng)求;從庫(kù)完成讀請(qǐng)求(從庫(kù)不允許寫)。

@Bean
public LettuceClientConfigurationBuilderCustomizer lettuceClientCustomizer() {
    // 配置讀寫分離
    return builder -> builder.readFrom(ReadFrom.REPLICA);
}

 到此這篇關(guān)于淺談Redis哨兵模式高可用解決方案的文章就介紹到這了,更多相關(guān)Redis哨兵模式高可用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot 開啟Redis緩存及使用方法

    SpringBoot 開啟Redis緩存及使用方法

    用redis做緩存,是因?yàn)閞edis有著很優(yōu)秀的讀寫能力,在集群下可以保證數(shù)據(jù)的高可用,那么今天通過本文給大家講解下SpringBoot使用Redis的緩存的方法,感興趣的朋友一起看看吧
    2021-08-08
  • 基于Redis結(jié)合SpringBoot的秒殺案例詳解

    基于Redis結(jié)合SpringBoot的秒殺案例詳解

    這篇文章主要介紹了Redis結(jié)合SpringBoot的秒殺案例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Redis執(zhí)行Lua腳本的好處與示例代碼

    Redis執(zhí)行Lua腳本的好處與示例代碼

    Redis在2.6推出了腳本功能,允許開發(fā)者使用Lua語言編寫腳本傳到Redis中執(zhí)行。下面這篇文章主要給大家介紹了關(guān)于Redis執(zhí)行Lua腳本的好處與示例代碼,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • Redis不同數(shù)據(jù)類型的命令語句詳解

    Redis不同數(shù)據(jù)類型的命令語句詳解

    這篇文章主要介紹了Redis不同數(shù)據(jù)類型的命令語句,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • redis緩存預(yù)熱的實(shí)現(xiàn)示例

    redis緩存預(yù)熱的實(shí)現(xiàn)示例

    本文主要介紹了Java中實(shí)現(xiàn)緩存預(yù)熱的多種策略,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 淺談Redis高并發(fā)緩存架構(gòu)性能優(yōu)化實(shí)戰(zhàn)

    淺談Redis高并發(fā)緩存架構(gòu)性能優(yōu)化實(shí)戰(zhàn)

    本文主要介紹了淺談Redis高并發(fā)緩存架構(gòu)性能優(yōu)化實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 淺談一下Redis的數(shù)據(jù)結(jié)構(gòu)

    淺談一下Redis的數(shù)據(jù)結(jié)構(gòu)

    這篇文章主要介紹了淺談一下Redis的數(shù)據(jù)結(jié)構(gòu),簡(jiǎn)單字符串結(jié)構(gòu)被用于存儲(chǔ)redis的key對(duì)象和String類型的value對(duì)象,其中的free和len字段可以輕松的使得在該字符串被修改時(shí)判斷是否需要擴(kuò)容,需要的朋友可以參考下
    2023-08-08
  • Redis中的延遲雙刪

    Redis中的延遲雙刪

    這篇文章主要介紹了Redis中的延遲雙刪問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 手把手教你用Redis 實(shí)現(xiàn)點(diǎn)贊功能并且與數(shù)據(jù)庫(kù)同步

    手把手教你用Redis 實(shí)現(xiàn)點(diǎn)贊功能并且與數(shù)據(jù)庫(kù)同步

    本文主要介紹了Redis 實(shí)現(xiàn)點(diǎn)贊功能并且與數(shù)據(jù)庫(kù)同步,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Redis教程(十一):虛擬內(nèi)存介紹

    Redis教程(十一):虛擬內(nèi)存介紹

    這篇文章主要介紹了Redis教程(十一):虛擬內(nèi)存介紹,本文講解了虛擬內(nèi)存簡(jiǎn)介、應(yīng)用場(chǎng)景和配置方法等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

凌云县| 邻水| 五台县| 皋兰县| 德惠市| 兴文县| 湾仔区| 京山县| 集安市| 仙游县| 巴林左旗| 兴安县| 海兴县| 安图县| 延津县| 云阳县| 资兴市| 宁乡县| 会同县| 韶山市| 绥芬河市| 云梦县| 正定县| 武清区| 新疆| 民和| 潢川县| 新郑市| 双辽市| 广饶县| 大城县| 工布江达县| 基隆市| 左贡县| 漯河市| 邯郸县| 乌海市| 屏山县| 门源| 保定市| 黑龙江省|