女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Springboot+redis操作多種實(shí)現(xiàn)

Android編程精選 ? 來源:CSDN技術(shù)社區(qū) ? 作者:Tonels ? 2021-09-22 10:48 ? 次閱讀

一、Jedis,Redisson,Lettuce三者的區(qū)別共同點(diǎn):都提供了基于Redis操作的Java API,只是封裝程度,具體實(shí)現(xiàn)稍有不同。

不同點(diǎn):

1.1、Jedis

是Redis的Java實(shí)現(xiàn)的客戶端。支持基本的數(shù)據(jù)類型如:String、Hash、List、Set、Sorted Set。

特點(diǎn):使用阻塞的I/O,方法調(diào)用同步,程序流需要等到socket處理完I/O才能執(zhí)行,不支持異步操作。Jedis客戶端實(shí)例不是線程安全的,需要通過連接池來使用Jedis。

1.2、Redisson

優(yōu)點(diǎn)點(diǎn):分布式鎖,分布式集合,可通過Redis支持延遲隊(duì)列。

1.3、 Lettuce

用于線程安全同步,異步和響應(yīng)使用,支持集群,Sentinel,管道和編碼器

基于Netty框架的事件驅(qū)動(dòng)的通信層,其方法調(diào)用是異步的。Lettuce的API是線程安全的,所以可以操作單個(gè)Lettuce連接來完成各種操作。

二、RedisTemplate2.1、使用配置

maven配置引入,(要加上版本號(hào),我這里是因?yàn)镻arent已聲明)


	

<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-data-redisartifactId> dependency>

application-dev.yml


	

spring: redis: host:192.168.1.140 port:6379 password: database:15#指定redis的分庫(kù)(共16個(gè)0到15)

2.2、使用示例


	

@Resource privateStringRedisTemplatestringRedisTemplate; @Override publicCustomersEntityfindById(Integerid){ //需要緩存 //所有涉及的緩存都需要?jiǎng)h除,或者更新 try{ StringtoString=stringRedisTemplate.opsForHash().get(REDIS_CUSTOMERS_ONE,id+"").toString(); if(toString!=null){ returnJSONUtil.toBean(toString,CustomersEntity.class); } }catch(Exceptione){ e.printStackTrace(); } //緩存為空的時(shí)候,先查,然后緩存redis OptionalbyId=customerRepo.findById(id); if(byId.isPresent()){ CustomersEntitycustomersEntity=byId.get(); try{ stringRedisTemplate.opsForHash().put(REDIS_CUSTOMERS_ONE,id+"",JSONUtil.toJsonStr(customersEntity)); }catch(Exceptione){ e.printStackTrace(); } returncustomersEntity; } returnnull; }

2.3、擴(kuò)展

2.3.1、spring-boot-starter-data-redis的依賴包

3.3.2、stringRedisTemplate API(部分展示)

opsForHash --》 hash操作

opsForList --》 list操作

opsForSet --》 set操作

opsForValue --》 string操作

opsForZSet --》 Zset操作

3.3.3 StringRedisTemplate默認(rèn)序列化機(jī)制


	

publicclassStringRedisTemplateextendsRedisTemplate<String,String>{ /** *ConstructsanewStringRedisTemplateinstance.{@link#setConnectionFactory(RedisConnectionFactory)} *and{@link#afterPropertiesSet()}stillneedtobecalled. */ publicStringRedisTemplate(){ RedisSerializerstringSerializer=newStringRedisSerializer(); setKeySerializer(stringSerializer); setValueSerializer(stringSerializer); setHashKeySerializer(stringSerializer); setHashValueSerializer(stringSerializer); } }

三、RedissonClient 操作示例

3.1 基本配置

3.1.1、Maven pom 引入

	

<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-data-redisartifactId> dependency> <dependency> <groupId>org.redissongroupId> <artifactId>redissonartifactId> <version>3.8.2version> <optional>trueoptional> dependency> <dependency> <groupId>org.redissongroupId> <artifactId>redisson-spring-boot-starterartifactId> <version>LATESTversion> dependency>

3.1.2、添加配置文件Yaml或者json格式

redisson-config.yml


	

#Redisson配置 singleServerConfig: address:"redis://192.168.1.140:6379" password:null clientName:null database:15#選擇使用哪個(gè)數(shù)據(jù)庫(kù)0~15 idleConnectionTimeout:10000 pingTimeout:1000 connectTimeout:10000 timeout:3000 retryAttempts:3 retryInterval:1500 reconnectionTimeout:3000 failedAttempts:3 subscriptionsPerConnection:5 subscriptionConnectionMinimumIdleSize:1 subscriptionConnectionPoolSize:50 connectionMinimumIdleSize:32 connectionPoolSize:64 dnsMonitoringInterval:5000 #dnsMonitoring:false threads:0 nettyThreads:0 codec: class:"org.redisson.codec.JsonJacksonCodec" transportMode:"NIO"

或者,配置 redisson-config.json


	

{ "singleServerConfig":{ "idleConnectionTimeout":10000, "pingTimeout":1000, "connectTimeout":10000, "timeout":3000, "retryAttempts":3, "retryInterval":1500, "reconnectionTimeout":3000, "failedAttempts":3, "password":null, "subscriptionsPerConnection":5, "clientName":null, "address":"redis://192.168.1.140:6379", "subscriptionConnectionMinimumIdleSize":1, "subscriptionConnectionPoolSize":50, "connectionMinimumIdleSize":10, "connectionPoolSize":64, "database":0, "dnsMonitoring":false, "dnsMonitoringInterval":5000 }, "threads":0, "nettyThreads":0, "codec":null, "useLinuxNativeEpoll":false }

3.1.3、讀取配置

新建讀取配置類


	

@Configuration publicclassRedissonConfig{ @Bean publicRedissonClientredisson()throwsIOException{ //兩種讀取方式,Config.fromYAML和Config.fromJSON //Configconfig=Config.fromJSON(RedissonConfig.class.getClassLoader().getResource("redisson-config.json")); Configconfig=Config.fromYAML(RedissonConfig.class.getClassLoader().getResource("redisson-config.yml")); returnRedisson.create(config); } }

或者,在 application.yml中配置如下


	

spring: redis: redisson: config:classpath:redisson-config.yaml

3.2 使用示例


	

@RestController @RequestMapping("/") publicclassTeController{ @Autowired privateRedissonClientredissonClient; staticlongi=20; staticlongsum=300; //==========================String======================= @GetMapping("/set/{key}") publicStrings1(@PathVariableStringkey){ //設(shè)置字符串 RBucketkeyObj=redissonClient.getBucket(key); keyObj.set(key+"1-v1"); returnkey; } @GetMapping("/get/{key}") publicStringg1(@PathVariableStringkey){ //設(shè)置字符串 RBucketkeyObj=redissonClient.getBucket(key); Strings=keyObj.get(); returns; } //==========================hash=======================-= @GetMapping("/hset/{key}") publicStringh1(@PathVariableStringkey){ Urur=newUr(); ur.setId(MathUtil.randomLong(1,20)); ur.setName(key); //存放Hash RMapss=redissonClient.getMap("UR"); ss.put(ur.getId().toString(),ur); returnur.toString(); } @GetMapping("/hget/{id}") publicStringh2(@PathVariableStringid){ //hash查詢 RMapss=redissonClient.getMap("UR"); Urur=ss.get(id); returnur.toString(); } //查詢所有的keys @GetMapping("/all") publicStringall(){ RKeyskeys=redissonClient.getKeys(); Iterablekeys1=keys.getKeys(); keys1.forEach(System.out::println); returnkeys.toString(); } //================================讀寫鎖測(cè)試============================= @GetMapping("/rw/set/{key}") publicvoidrw_set(){ //RedissonLock. RBucketls_count=redissonClient.getBucket("LS_COUNT"); ls_count.set("300",360000000l,TimeUnit.SECONDS); } //減法運(yùn)算 @GetMapping("/jf") publicvoidjf(){ Stringkey="S_COUNT"; //RAtomicLongatomicLong=redissonClient.getAtomicLong(key); //atomicLong.set(sum); //longl=atomicLong.decrementAndGet(); //System.out.println(l); RAtomicLongatomicLong=redissonClient.getAtomicLong(key); if(!atomicLong.isExists()){ atomicLong.set(300l); } while(i==0){ if(atomicLong.get()>0){ longl=atomicLong.getAndDecrement(); try{ Thread.sleep(1000l); }catch(InterruptedExceptione){ e.printStackTrace(); } i--; System.out.println(Thread.currentThread().getName()+"->"+i+"->"+l); } } } @GetMapping("/rw/get") publicStringrw_get(){ Stringkey="S_COUNT"; Runnabler=newRunnable(){ @Override publicvoidrun(){ RAtomicLongatomicLong=redissonClient.getAtomicLong(key); if(!atomicLong.isExists()){ atomicLong.set(300l); } if(atomicLong.get()>0){ longl=atomicLong.getAndDecrement(); i--; System.out.println(Thread.currentThread().getName()+"->"+i+"->"+l); } } }; while(i!=0){ newThread(r).start(); //newThread(r).run(); //newThread(r).run(); //newThread(r).run(); //newThread(r).run(); } RBucketbucket=redissonClient.getBucket(key); Strings=bucket.get(); System.out.println("================線程已結(jié)束================================"+s); returns; } }

4.3 擴(kuò)展

4.3.1 豐富的jar支持,尤其是對(duì) Netty NIO框架

4.3.2 豐富的配置機(jī)制選擇,這里是詳細(xì)的配置說明

https://github.com/redisson/redisson/wiki/2.-Configuration

關(guān)于序列化機(jī)制中,就有很多

ebfcba9a-1668-11ec-8fb8-12bb97331649.pngec0676fc-1668-11ec-8fb8-12bb97331649.png

4.3.3 API支持(部分展示),具體的 Redis --> RedissonClient ,可查看這里

https://github.com/redisson/redisson/wiki/11.-Redis-commands-mapping

ec127c54-1668-11ec-8fb8-12bb97331649.png


4.3.4 輕便的豐富的鎖機(jī)制的實(shí)現(xiàn)

Lock

Fair Lock

MultiLock

RedLock

ReadWriteLock

Semaphore

PermitExpirableSemaphore

CountDownLatch

四、基于注解實(shí)現(xiàn)的Redis緩存4.1 Maven 和 YML配置

參考 RedisTemplate 配置。另外,還需要額外的配置類


	

//todo定義序列化,解決亂碼問題 @EnableCaching @Configuration @ConfigurationProperties(prefix="spring.cache.redis") publicclassRedisCacheConfig{ privateDurationtimeToLive=Duration.ZERO; publicvoidsetTimeToLive(DurationtimeToLive){ this.timeToLive=timeToLive; } @Bean publicCacheManagercacheManager(RedisConnectionFactoryfactory){ RedisSerializerredisSerializer=newStringRedisSerializer(); Jackson2JsonRedisSerializerjackson2JsonRedisSerializer=newJackson2JsonRedisSerializer(Object.class); //解決查詢緩存轉(zhuǎn)換異常的問題 ObjectMapperom=newObjectMapper(); om.setVisibility(PropertyAccessor.ALL,JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); //配置序列化(解決亂碼的問題) RedisCacheConfigurationconfig=RedisCacheConfiguration.defaultCacheConfig() .entryTtl(timeToLive) .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer)) .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer)) .disableCachingNullValues(); RedisCacheManagercacheManager=RedisCacheManager.builder(factory) .cacheDefaults(config) .build(); returncacheManager; } }

4.2 使用示例


	

@Transactional @Service publicclassReImplimplementsRedisService{ @Resource privateCustomerRepocustomerRepo; @Resource privateStringRedisTemplatestringRedisTemplate; publicstaticfinalStringREDIS_CUSTOMERS_ONE="Customers"; publicstaticfinalStringREDIS_CUSTOMERS_ALL="allList"; //=====================================================================使用Springcahce注解方式實(shí)現(xiàn)緩存 //==================================單個(gè)操作 @Override @Cacheable(value="cache:customer",unless="null==#result",key="#id") publicCustomersEntitycacheOne(Integerid){ finalOptionalbyId=customerRepo.findById(id); returnbyId.isPresent()?byId.get():null; } @Override @Cacheable(value="cache:customer",unless="null==#result",key="#id") publicCustomersEntitycacheOne2(Integerid){ finalOptionalbyId=customerRepo.findById(id); returnbyId.isPresent()?byId.get():null; } //todo自定義redis緩存的key, @Override @Cacheable(value="cache:customer",unless="null==#result",key="#root.methodName+'.'+#id") publicCustomersEntitycacheOne3(Integerid){ finalOptionalbyId=customerRepo.findById(id); returnbyId.isPresent()?byId.get():null; } //todo這里緩存到redis,還有響應(yīng)頁(yè)面是String(加了很多轉(zhuǎn)義符,),不是Json格式 @Override @Cacheable(value="cache:customer",unless="null==#result",key="#root.methodName+'.'+#id") publicStringcacheOne4(Integerid){ finalOptionalbyId=customerRepo.findById(id); returnbyId.map(JSONUtil::toJsonStr).orElse(null); } //todo緩存json,不亂碼已處理好,調(diào)整序列化和反序列化 @Override @Cacheable(value="cache:customer",unless="null==#result",key="#root.methodName+'.'+#id") publicCustomersEntitycacheOne5(Integerid){ OptionalbyId=customerRepo.findById(id); returnbyId.filter(obj->!StrUtil.isBlankIfStr(obj)).orElse(null); } //==================================刪除緩存 @Override @CacheEvict(value="cache:customer",key="'cacheOne5'+'.'+#id") publicObjectdel(Integerid){ //刪除緩存后的邏輯 returnnull; } @Override @CacheEvict(value="cache:customer",allEntries=true) publicvoiddel(){ } @CacheEvict(value="cache:all",allEntries=true) publicvoiddelall(){ } //==================List操作 @Override @Cacheable(value="cache:all") publicListcacheList(){ Listall=customerRepo.findAll(); returnall; } //todo先查詢緩存,再校驗(yàn)是否一致,然后更新操作,比較實(shí)用,要清楚緩存的數(shù)據(jù)格式(明確業(yè)務(wù)和緩存模型數(shù)據(jù)) @Override @CachePut(value="cache:all",unless="null==#result",key="#root.methodName") publicListcacheList2(){ Listall=customerRepo.findAll(); returnall; } }

4.3 擴(kuò)展

基于spring緩存實(shí)現(xiàn)

來源:blog.csdn.net/qq_42105629/article/details/102589319

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    340

    瀏覽量

    14873
  • Boot
    +關(guān)注

    關(guān)注

    0

    文章

    153

    瀏覽量

    36530
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    384

    瀏覽量

    11309
  • SpringBoot
    +關(guān)注

    關(guān)注

    0

    文章

    175

    瀏覽量

    312

原文標(biāo)題:Spring Boot 操作 Redis 的各種實(shí)現(xiàn)

文章出處:【微信號(hào):AndroidPush,微信公眾號(hào):Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Redis 再次開源!

    “ ?Redis 現(xiàn)已采用 AGPLv3 開源許可證。? ” Redis CEO 的 Blog 以下是 Redis CEO Rowan Trollope 的 Blog: 像 AWS 和 GCP 這樣
    的頭像 發(fā)表于 05-06 18:26 ?298次閱讀

    redis三種集群方案詳解

    Redis中提供的集群方案總共有三種(一般一個(gè)redis節(jié)點(diǎn)不超過10G內(nèi)存)。
    的頭像 發(fā)表于 03-31 10:46 ?516次閱讀
    <b class='flag-5'>redis</b>三種集群方案詳解

    Redis實(shí)戰(zhàn)筆記

    在目前的技術(shù)選型中,Redis 儼然已經(jīng)成為了系統(tǒng)高性能緩存方案的事實(shí)標(biāo)準(zhǔn),因此現(xiàn)在?Redis 也成為了后端開發(fā)的基本技能樹之一。 ? 基于上述情況,今天給大家分享一份?杰哥?親筆撰寫的內(nèi)部
    的頭像 發(fā)表于 02-09 09:12 ?301次閱讀
    <b class='flag-5'>Redis</b>實(shí)戰(zhàn)筆記

    華為云 Flexus X 加速 Redis 案例實(shí)踐與詳解

    Redis 加速鏡像,更是為開發(fā)者提供了極大的便利。本文將詳細(xì)介紹如何利用華為云 Flexus X 實(shí)例自帶的 Redis 鏡像,快速部署并配置 Redis,以及通過實(shí)際案例展示其便捷性和高效性。 一、華為云 Flexus
    的頭像 發(fā)表于 01-23 17:52 ?256次閱讀
    華為云 Flexus X 加速 <b class='flag-5'>Redis</b> 案例實(shí)踐與詳解

    Redis Cluster之故障轉(zhuǎn)移

    1. Redis Cluster 簡(jiǎn)介 Redis Cluster 是 Redis 官方提供的 Redis 集群功能。 為什么要實(shí)現(xiàn)
    的頭像 發(fā)表于 01-20 09:21 ?737次閱讀
    <b class='flag-5'>Redis</b> Cluster之故障轉(zhuǎn)移

    云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 Redis 集群

    Redis 集群是一種分布式的 Redis 解決方案,能夠在多個(gè)節(jié)點(diǎn)之間分片存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)水平擴(kuò)展和高可用性。與傳統(tǒng)的主從架構(gòu)不同,Redis 集群支持?jǐn)?shù)據(jù)自動(dòng)分片、主節(jié)點(diǎn)故障自動(dòng)切換
    的頭像 發(fā)表于 01-13 13:37 ?300次閱讀
    云服務(wù)器 Flexus X 實(shí)例,Docker 集成搭建 <b class='flag-5'>Redis</b> 集群

    性能與可靠性并重,F(xiàn)lexus X 實(shí)例助力 Redis 三主三從集群高效運(yùn)行

    前言 在追求極致性能與可靠性的道路上,F(xiàn)lexus X 實(shí)例以卓越的算力與智能調(diào)度,為 Redis 三主三從集群的高效運(yùn)行保駕護(hù)航。此架構(gòu)不僅實(shí)現(xiàn)了數(shù)據(jù)的高可用性,還通過負(fù)載均衡提升了整體性
    的頭像 發(fā)表于 01-07 17:21 ?343次閱讀
    性能與可靠性并重,F(xiàn)lexus X 實(shí)例助力 <b class='flag-5'>Redis</b> 三主三從集群高效運(yùn)行

    華為云Flexus X實(shí)例,Redis性能加速評(píng)測(cè)及對(duì)比

    隨著云計(jì)算技術(shù)的飛速發(fā)展,Redis 作為一種高性能的內(nèi)存數(shù)據(jù)庫(kù),在各種應(yīng)用場(chǎng)景中發(fā)揮著越來越重要的作用。為了滿足不同用戶對(duì) Redis 性能的高要求,華為云推出了 Flexus X 實(shí)例,并提供了
    的頭像 發(fā)表于 12-29 15:47 ?417次閱讀
    華為云Flexus X實(shí)例,<b class='flag-5'>Redis</b>性能加速評(píng)測(cè)及對(duì)比

    華為云 Flexus X 輕松實(shí)現(xiàn) Redis 一主多從高效部署

    ,F(xiàn)lexus?X 預(yù)裝 Redis 加速鏡像,簡(jiǎn)化了 Redis 的安裝和配置流程,降低了技術(shù)門檻,使開發(fā)者能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn)。 ????????本文將詳細(xì)介紹如何在華為云 Flexus?X 上
    的頭像 發(fā)表于 12-27 13:45 ?426次閱讀
    華為云 Flexus X 輕松<b class='flag-5'>實(shí)現(xiàn)</b> <b class='flag-5'>Redis</b> 一主多從高效部署

    Redis使用重要的兩個(gè)機(jī)制:Reids持久化和主從復(fù)制

    今天這篇文章,我們一起了解 Redis 使用中非常重要的兩個(gè)機(jī)制:Reids 持久化和主從復(fù)制。 我們都知道Redis是一個(gè)內(nèi)存數(shù)據(jù)庫(kù),在學(xué)習(xí)主從同步之前,我們首先要想到 Redis 是如何做數(shù)據(jù)
    的頭像 發(fā)表于 12-18 10:33 ?344次閱讀
    <b class='flag-5'>Redis</b>使用重要的兩個(gè)機(jī)制:Reids持久化和主從復(fù)制

    Redis緩存與Memcached的比較

    關(guān)鍵特性和差異: 1. 數(shù)據(jù)存儲(chǔ) Redis: Redis是一個(gè)開源的鍵值存儲(chǔ),支持多種數(shù)據(jù)結(jié)構(gòu),如字符串、列表、集合、有序集合、散列、位圖、超日志和地理空間索引。 它支持持久化,可以將內(nèi)存中的數(shù)據(jù)保存到磁盤,支持RDB(快照)
    的頭像 發(fā)表于 12-18 09:33 ?489次閱讀

    nginx+lua+redis實(shí)現(xiàn)灰度發(fā)布

    作者:馬仁喜 前言: 授人以魚不如授人以漁 .先學(xué)會(huì)用,在學(xué)原理,在學(xué)創(chuàng)造,可能一輩子用不到這種能力,但是不能不具備這種能力。這篇文章主要是沉淀使用nginx+lua+redis實(shí)現(xiàn)灰度,當(dāng)我們具備
    的頭像 發(fā)表于 12-17 10:01 ?360次閱讀

    TI是否有帶cascade mode的音頻Codece,用作多片級(jí)聯(lián)?

    TI是否有帶cascade mode(類似TVP5158的音頻部分)的音頻Codece用作多片級(jí)聯(lián)
    發(fā)表于 10-24 06:47

    恒訊科技分析:云數(shù)據(jù)庫(kù)rds和redis區(qū)別是什么如何選擇?

    結(jié)構(gòu)化數(shù)據(jù),使用SQL作為查詢語(yǔ)言,支持ACID事務(wù)和多種復(fù)雜查詢操作。而Redis是一個(gè)基于內(nèi)存的非關(guān)系型數(shù)據(jù)庫(kù),采用鍵值對(duì)模型存儲(chǔ)數(shù)據(jù),支持豐富的數(shù)據(jù)結(jié)構(gòu)如字符串、列表、集合、哈希表等。 2、性能:
    的頭像 發(fā)表于 08-19 15:31 ?715次閱讀

    K8S學(xué)習(xí)教程(二):在 PetaExpress KubeSphere容器平臺(tái)部署高可用 Redis 集群

    前言 Redis 是在開發(fā)過程中經(jīng)常用到的緩存中間件,為了考慮在生產(chǎn)環(huán)境中穩(wěn)定性和高可用,Redis通常采用集群模式的部署方式。 在制定Redis集群的部署策略時(shí),常規(guī)部署在虛擬機(jī)上的方式配置繁瑣
    的頭像 發(fā)表于 07-03 15:30 ?1108次閱讀
    K8S學(xué)習(xí)教程(二):在 PetaExpress KubeSphere容器平臺(tái)部署高可用 <b class='flag-5'>Redis</b> 集群