国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

在Spring Boot微服務(wù)集成JedisCluster操作Redis集群

這篇具有很好參考價(jià)值的文章主要介紹了在Spring Boot微服務(wù)集成JedisCluster操作Redis集群。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

記錄:448

場景:在Spring Boot微服務(wù)使用JedisCluster操作Redis集群的緩存和隊(duì)列等數(shù)據(jù)類型。

版本:JDK 1.8,Spring?Boot 2.6.3,redis-6.2.5,jedis-3.7.1。

1.微服務(wù)中配置Redis信息

1.1在pom.xml添加依賴

pom.xml文件:

<dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>3.7.1</version>
</dependency>

解析:在Spring?Boot中默認(rèn)集成jedis,使用無需加版本號,本例版本3.7.1是Spring?Boot 2.6.3對應(yīng)的版本。

1.2在application.yml中配置Redis集群信息

(1)application.yml配置內(nèi)容

hub:
  example:
    redis:
      jedis-cluster:
        password: demo12345678
        connection-timeout: 60000
        so-timeout: 1000
        max-attempts: 100
        nodes:
          - 192.168.19.161:27001
          - 192.168.19.161:27002
          - 192.168.19.162:27001
          - 192.168.19.162:27002
          - 192.168.19.163:27001
          - 192.168.19.163:27002

(2)解析

在application.yml中配置內(nèi)容是自定義的,對應(yīng)自定義配置類JedisClusterProperties。

類全稱:com.hub.example.config.JedisClusterProperties。

自定義配置類使用如下注解生效:

@ConfigurationProperties(prefix = "hub.example.redis.jedis-cluster")

1.3加載簡要邏輯

Spring Boot微服務(wù)在啟動時,自動注解機(jī)制會讀取application.yml的配置信息注入到自定義配置類JedisClusterProperties對象的對應(yīng)屬性。因此,在Spring環(huán)境中就能取到Redis集群的配置信息。

Spring從JedisClusterProperties對象中取配置注入到JedisCluster客戶端中。因此,JedisCluster客戶端就能對Redis集群做增、刪、改、查等操作。

2.配置JedisCluster

JedisCluster是jedis框架中封裝的操作Redis的客戶端。

類全稱:redis.clients.jedis.JedisCluster

2.1配置JedisClusterProperties

JedisClusterProperties是自定義配置了,作用是加載application.yml中Redis集群的配置信息。

使用@ConfigurationProperties注解生效,使用注解的prefix指定配置application.yml中前綴。

@Component
@ConfigurationProperties(prefix = "hub.example.redis.jedis-cluster")
public class JedisClusterProperties {
  private List<String> nodes;
  private String password;
  private int connectionTimeout;
  private int soTimeout;
  private int maxAttempts;
  public List<String> getNodes() {
      return nodes;
  }
  public void setNodes(List<String> nodes) {
      this.nodes = nodes;
  }
  public String getPassword() {
      return password;
  }
  public void setPassword(String password) {
      this.password = password;
  }
  public int getConnectionTimeout() {
      return connectionTimeout;
  }
  public void setConnectionTimeout(int connectionTimeout) {
      this.connectionTimeout = connectionTimeout;
  }
  public int getSoTimeout() {
      return soTimeout;
  }
  public void setSoTimeout(int soTimeout) {
      this.soTimeout = soTimeout;
  }
  public int getMaxAttempts() {
      return maxAttempts;
  }
  public void setMaxAttempts(int maxAttempts) {
      this.maxAttempts = maxAttempts;
  }
}

2.2配置JedisCluster

@Configuration
public class JedisClusterConfig {
  @Autowired
  JedisClusterProperties jedisClusterProperties;
  @Bean("jedisCluster")
  public JedisCluster getJedisCluster(JedisPoolConfig jedisPoolConfigCluster) {
    List<String> nodesList = jedisClusterProperties.getNodes();
    Set<HostAndPort> nodesSet = new HashSet<>();
    for (String ipAndPort : nodesList) {
        String[] ipAndPortPair = ipAndPort.split(":");
        nodesSet.add(new HostAndPort(ipAndPortPair[0].trim(), Integer.parseInt(ipAndPortPair[1].trim())));
    }
  
    return new JedisCluster(nodesSet,
            jedisClusterProperties.getConnectionTimeout(),
            jedisClusterProperties.getSoTimeout(),
            jedisClusterProperties.getMaxAttempts(),
            jedisClusterProperties.getPassword(),
            jedisPoolConfigCluster
    );
  }
  @Bean("jedisPoolConfigCluster")
  public JedisPoolConfig jedisPoolConfigCluster() {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(30);
    jedisPoolConfig.setMaxIdle(30);
    jedisPoolConfig.setMinIdle(1);
    jedisPoolConfig.setNumTestsPerEvictionRun(-1);
    jedisPoolConfig.setTestOnBorrow(true);
    jedisPoolConfig.setTestOnReturn(false);
    jedisPoolConfig.setBlockWhenExhausted(false);
    return jedisPoolConfig;
  }
}

2.3解析

配置JedisCluster后,在Spring環(huán)境中,可以使用@Autowired注解注入JedisCluster實(shí)例操作Redis集群。也可以使用cn.hutool.extra.spring.SpringUtil工具等從Spring 中獲取JedisCluster實(shí)例操作Redis集群。

3.使用@Autowired注入JedisCluster方式操作Redis集群

3.1簡要說明

使用@Autowired注入JedisCluster,操作Redis集群的增、查、改、刪等操作。

3.2操作示例

@RestController
@RequestMapping("/hub/example/operateJedisCluster")
@Slf4j
public class OperateJedisClusterController {
  @Autowired
  private JedisCluster jedisCluster;
  /**
   * 使用@Autowired注入獲取JedisCluster
   */
  @GetMapping("/f01_01")
  public Object f01_01() {
      log.info("JedisCluster操作Redis集群開始...");
      // 1.增
      jedisCluster.set("J:2023060801:01", "江蘇-蘇州");
      // 2.查
      String result01 = jedisCluster.get("J:2023060801:01");
      log.info("查詢J:2023060801:01 = " + result01.toString());
      // 3.改
      jedisCluster.set("J:2023060801:01", "江蘇-南京");
      result01 = jedisCluster.get("J:2023060801:01");
      log.info("修改后,J:2023060801:01 = " + result01.toString());
      // 4.刪
      long time = 8000;
      log.info("{}秒后,刪除J:2023060801:01.",time/1000);
      ThreadUtil.sleep(time);
      jedisCluster.del("J:2023060801:01");
      log.info("JedisCluster操作Redis集群結(jié)束...");
      return "執(zhí)行成功";
  }
}

3.3測試驗(yàn)證

使用Postman測試。

請求RUL:http://127.0.0.1:18205/hub-205-redis/hub/example/operateJedisCluster/f01_01

4.使用SpringUtil從Spring中獲取JedisCluster的方式操作Redis集群

4.1簡要說明

使用SpringUtil從Spring中獲取JedisCluster的方式,操作Redis集群的增、查、改、刪等操作。

jar包:hutool-all-5.8.12.jar。

類:cn.hutool.extra.spring.SpringUtil

4.2操作示例

@RestController
@RequestMapping("/hub/example/operateJedisCluster")
@Slf4j
public class OperateJedisClusterController {
  @Autowired
  private JedisCluster jedisCluster;
  /**
   * 使用工具獲取JedisCluster
   */
  @GetMapping("/f01_02")
  public Object f01_02() {
      log.info("JedisCluster操作Redis集群開始...");
      JedisCluster jedisCluster02 = SpringUtil.getBean("jedisCluster");
      // 1.增
      jedisCluster02.set("J:2023060801:02", "江蘇-蘇州");
      // 2.查
      String result01 = jedisCluster02.get("J:2023060801:02");
      log.info("查詢J:2023060801:02 = " + result01.toString());
      // 3.改
      jedisCluster02.set("CityInfo:suzhou01:02", "江蘇-南京");
      log.info("修改后,J:2023060801:02 = " + result01.toString());
      // 4.刪
      long time = 8000;
      log.info("{}秒后,刪除J:2023060801:02.",time/1000);
      ThreadUtil.sleep(time);
      jedisCluster02.del("J:2023060801:02");
      log.info("JedisCluster操作Redis集群結(jié)束...");
      return "執(zhí)行成功";
  }
}

4.3測試驗(yàn)證

使用Postman測試。

請求http://127.0.0.1:18205/hub-205-redis/hub/example/operateJedisCluster/f01_02

5.小結(jié)

(1)使用Jedis框架操作Redis集群和Redis單機(jī)版兩種場景

操作Redis集群使用JedisCluster類,全稱:redis.clients.jedis.JedisCluster。

操作Redis單機(jī)版使用Jedis類,全稱:redis.clients.jedis.Jedis。

(2)JedisCluster和Jedis

JedisCluster繼承BinaryJedisCluster,實(shí)現(xiàn)JedisClusterCommands,MultiKeyJedisClusterCommands,JedisClusterScriptingCommands接口。

Jedis繼承BinaryJedis類,實(shí)現(xiàn)JedisCommands,MultiKeyCommands,AdvancedJedisCommands,ScriptingCommands,BasicCommands,ClusterCommands,SentinelCommands,ModuleCommands接口。

以上,感謝。

2023年6月8日文章來源地址http://www.zghlxwxcb.cn/news/detail-487019.html

到了這里,關(guān)于在Spring Boot微服務(wù)集成JedisCluster操作Redis集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 在Spring Boot微服務(wù)使用RedisTemplate操作Redis集群

    記錄 :442 場景 :在Spring Boot微服務(wù)使用RedisTemplate操作Redis集群的緩存和隊(duì)列等數(shù)據(jù)類型。 版本 :JDK 1.8,Spring?Boot 2.6.3,redis-6.2.5。 1.微服務(wù)中 配置Redis信息 1.1在pom.xml添加依賴 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.yml中配置Redis集群

    2024年02月12日
    瀏覽(25)
  • 在Spring Boot微服務(wù)使用ListOperations操作Redis集群List列表

    記錄 :444 場景 :在Spring Boot微服務(wù)使用RedisTemplate的ListOperations操作Redis集群的List列表數(shù)據(jù)類型。 版本 :JDK 1.8,Spring?Boot 2.6.3,redis-6.2.5。 1.微服務(wù)中 配置Redis信息 1.1在pom.xml添加依賴 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.yml中配置

    2024年02月08日
    瀏覽(22)
  • 在Spring Boot微服務(wù)使用ZSetOperations操作Redis集群Zset(有序集合)

    記錄 :447 場景 :在Spring Boot微服務(wù)使用RedisTemplate的ZSetOperations操作Redis集群的Zset(有序集合)數(shù)據(jù)類型。 版本 :JDK 1.8,Spring?Boot 2.6.3,redis-6.2.5。 1.微服務(wù)中 配置Redis信息 1.1在pom.xml添加依賴 pom.xml文件: 解析:spring-boot-starter-data-redis和spring-boot版本保持一致。 1.2在application.ym

    2024年02月08日
    瀏覽(18)
  • 在Spring Boot微服務(wù)集成Kafka客戶端(spring-kafka)操作Kafka

    記錄 :457 場景 :在Spring Boot微服務(wù)集成Kafka客戶端spring-kafka-2.8.2操作Kafka。使用Spring封裝的KafkaTemplate操作Kafka生產(chǎn)者Producer。使用Spring封裝的@KafkaListener操作Kafka的消費(fèi)者Consumer。 版本 :JDK 1.8,Spring?Boot 2.6.3,kafka_2.12-2.8.0,spring-kafka-2.8.2。 Kafka安裝 :https://blog.csdn.net/zhangbeizhen1

    2024年02月09日
    瀏覽(92)
  • 在Spring Boot微服務(wù)集成Kafka客戶端(kafka-clients)操作Kafka

    記錄 :459 場景 :在Spring Boot微服務(wù)集成Kafka客戶端kafka-clients-3.0.0操作Kafka。使用kafka-clients的原生KafkaProducer操作Kafka生產(chǎn)者Producer。使用kafka-clients的原生KafkaConsumer操作Kafka的消費(fèi)者Consumer。 版本 :JDK 1.8,Spring?Boot 2.6.3,kafka_2.12-2.8.0,kafka-clients-3.0.0。 Kafka安裝 :https://blog.csdn.ne

    2024年02月12日
    瀏覽(91)
  • 將Spring Boot與Redis集成

    Spring Boot是一個用于創(chuàng)建獨(dú)立且可執(zhí)行的Spring應(yīng)用程序的框架。它簡化了基于Spring框架的應(yīng)用程序的開發(fā)過程,并提供了一種快速和簡便的方式來構(gòu)建Java應(yīng)用程序。 Spring Boot提供了自動配置機(jī)制,通過引入適當(dāng)?shù)囊蕾図?xiàng),可以自動配置各種Spring功能。它還提供了內(nèi)嵌的HTTP服務(wù)

    2024年02月11日
    瀏覽(92)
  • Spring Boot集成Redis簡單示例

    要在Spring Boot中集成Redis,你可以使用Spring Data Redis庫來簡化操作。 下面是一個示例代碼: 首先,在你的Spring Boot項(xiàng)目的pom.xml文件中添加以下依賴: 接下來,配置Redis連接信息。在application.properties(或application.yml)文件中添加以下配置: 然后,創(chuàng)建一個Redis服務(wù)類來執(zhí)行一些

    2024年01月22日
    瀏覽(98)
  • 【Redis系列】Spring Boot 集成 Redis 實(shí)現(xiàn)緩存功能

    【Redis系列】Spring Boot 集成 Redis 實(shí)現(xiàn)緩存功能

    ??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進(jìn)步,活到老學(xué)到老 導(dǎo)航 檀越劍指大廠系列:全面總

    2024年04月10日
    瀏覽(96)
  • 【Spring Boot 3】【Redis】集成Lettuce

    軟件開發(fā)是一門實(shí)踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月18日
    瀏覽(99)
  • 【Spring Boot 3】【Redis】集成Jedis

    軟件開發(fā)是一門實(shí)踐性科學(xué),對大多數(shù)人來說,學(xué)習(xí)一種新技術(shù)不是一開始就去深究其原理,而是先從做出一個可工作的DEMO入手。但在我個人學(xué)習(xí)和工作經(jīng)歷中,每次學(xué)習(xí)新技術(shù)總是要花費(fèi)或多或少的時間、檢索不止一篇資料才能得出一個可工作的DEMO,這占用了我大量的時

    2024年01月19日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包