亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

tio-boot?jfinal-plugins框架整合redis示例詳解

 更新時(shí)間:2023年12月27日 08:54:16   作者:李通  
這篇文章主要為大家介紹了tio-boot?jfinal-plugins框架整合redis示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

jfinal-plugins

tio-boot 是一個(gè)基于Java的網(wǎng)絡(luò)編程框架,用于快速開(kāi)發(fā)高性能的網(wǎng)絡(luò)應(yīng)用程序。

redis 是一個(gè)廣泛使用的開(kāi)源緩存服務(wù),它可以提高應(yīng)用程序的性能和擴(kuò)展性。

整合ecache需要用到j(luò)final-plugins

https://central.sonatype.com/artifact/com.litongjava/jfinal-p...

添加依賴

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <graalvm.version>23.1.1</graalvm.version>
    <tio.boot.version>1.2.9</tio.boot.version>
    <lombok-version>1.18.30</lombok-version>
    <hotswap-classloader.version>1.2.1</hotswap-classloader.version>
    <final.name>web-hello</final.name>
    <main.class>com.litongjava.tio.web.hello.HelloApp</main.class>
  </properties>
  <dependencies>
    <dependency>
      <groupId>com.litongjava</groupId>
      <artifactId>tio-boot</artifactId>
      <version>${tio.boot.version}</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>${lombok-version}</version>
      <optional>true</optional>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.litongjava</groupId>
      <artifactId>hotswap-classloader</artifactId>
      <version>${hotswap-classloader.version}</version>
    </dependency>
    <dependency>
      <groupId>com.litongjava</groupId>
      <artifactId>jfinal-plugins</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.jfinal</groupId>
      <artifactId>activerecord</artifactId>
      <version>5.1.2</version>
    </dependency>
  </dependencies>

依賴解釋

  • tio-boot是框架核心,
  • jfinal-plugins提供與Ehcache的集成
  • activerecord jfinal-plugins依賴jfinal-plugins

jfinal-plugins依賴如下

cron4j:2.2.5
ehcache-core:2.6.11
jedis:3.6.3
fst:2.57

RedisPluginConfig 配置類

這個(gè)類是一個(gè)配置類,用于初始化和配置 Redis 插件。它通過(guò) @Configuration 注解標(biāo)記為配置類。類中的方法 redisPlugin 通過(guò) @Initialization 注解標(biāo)記為初始化方法。在這個(gè)方法中,創(chuàng)建了一個(gè) RedisPlugin 實(shí)例并啟動(dòng)它。啟動(dòng)插件意味著 RedisPlugin 將連接redis服務(wù)

package com.litongjava.tio.web.hello.config;
import com.litongjava.jfinal.aop.annotation.Configuration;
import com.litongjava.jfinal.aop.annotation.Initialization;
import com.litongjava.jfinal.plugin.redis.Redis;
import com.litongjava.jfinal.plugin.redis.RedisPlugin;
@Configuration
public class RedisPluginConfig {
  @Initialization
  public void redisPlugin() {
    // 用于緩存bbs模塊的redis服務(wù)
    RedisPlugin bbsRedis = new RedisPlugin("bbs", "localhost");
    bbsRedis.start();
    // 測(cè)試連接
    Redis.use("bbs").getJedis().connect();
  }
}

控制器

RedisTestController 包含三個(gè)方法,每個(gè)方法都演示了如何使用Redis進(jìn)行不同類型的操作。以下是對(duì)每個(gè)方法的詳細(xì)解釋:

1. test01() 方法 - 基本的 Redis 緩存操作

  • 目的: 演示了如何使用Redis進(jìn)行基本的緩存操作。
  • 過(guò)程:

    • 使用 Redis.use("bbs") 獲取名為 "bbs" 的 Redis 緩存實(shí)例。
    • 試圖使用鍵 "litong" 從緩存中獲取值。
    • 如果值不存在(即 null),記錄一條日志(表示需要計(jì)算新的值),并將一個(gè)新值 "value___001" 設(shè)置到這個(gè)鍵中。
    • 返回緩存中的值(如果是首次調(diào)用,將返回 null,因?yàn)樵O(shè)置值是在檢查之后)。

2. test02() 方法 - 使用 Redis.call 方法

  • 目的: 演示了如何使用 Redis.call 方法執(zhí)行更復(fù)雜的Redis操作。
  • 過(guò)程:

    • 使用 Redis.call 方法執(zhí)行一個(gè) lambda 表達(dá)式,它使用 jedis 客戶端從 Redis 中獲取鍵為 "user" 的值。
    • 將獲取的JSON字符串解析為 User 類的實(shí)例。
    • 如果未找到用戶(即 user 為 null),記錄一條日志,并創(chuàng)建一個(gè)新的 User 實(shí)例。
    • 使用 Redis.call 再次將新的 User 實(shí)例以JSON格式保存到 Redis 中。
    • 返回 User 對(duì)象。

3. test03() 方法 - 調(diào)用 Jedis API

  • 目的: 演示如何直接調(diào)用 Jedis API 進(jìn)行Redis操作。
  • 過(guò)程:

    • 使用 Redis.call 方法執(zhí)行一個(gè) lambda 表達(dá)式,該表達(dá)式調(diào)用 j.incrBy 方法增加 "increase" 鍵的值。
    • j.incrBy("increase", 1) 表示將 "increase" 鍵的值增加1。
    • 返回增加后的值。
package com.litongjava.tio.web.hello.controller;
import com.alibaba.fastjson2.JSON;
import com.litongjava.jfinal.plugin.redis.Cache;
import com.litongjava.jfinal.plugin.redis.Redis;
import com.litongjava.tio.http.server.annotation.RequestPath;
import com.litongjava.tio.web.hello.model.User;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@RequestPath("/redis/test")
public class RedisTestController {
  /**
   * 測(cè)試redis
   * @return
   */
  public Object test01() {
    String cacheKey = "litong";
    Cache bbsCache = Redis.use("bbs");
    Object value = bbsCache.get(cacheKey);
    if (value == null) {
      log.info("計(jì)算新的值");
      bbsCache.set(cacheKey, "value___001");
    }
    return value;
  }
  /**
   * 使用Redis.call方法
   * @return
   */
  public User test02() {
    User user = Redis.call(jedis -> {
      String userJsonString = jedis.get("user");
      return JSON.parseObject(userJsonString, User.class);
    });
    if (user == null) {
      log.info("重新計(jì)算user");
      User user1 = new User("ping", "00000000");
      user = user1;
      // 或者簡(jiǎn)化為下面代碼
      Redis.call(j -> {
        return j.set("user", JSON.toJSONString(user1));
      });
    }
    return user;
  }
  /**
   * 調(diào)用Jedis API
   * @return
   */
  public Long test03() {
    Long ret = Redis.call(j -> j.incrBy("increase", 1));
    return ret;
  }
}

訪問(wèn)測(cè)試

  • http://localhost/redis/test/test01 
  • http://localhost/redis/test/test02 
  • http://localhost/redis/test/test03

以上就是tio-boot jfinal-plugins整合redis示例詳解的詳細(xì)內(nèi)容,更多關(guān)于tio-boot jfinal-plugins整合redis的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MyBatis+MySQL 返回插入的主鍵ID的方法

    MyBatis+MySQL 返回插入的主鍵ID的方法

    本篇文章主要介紹了MyBatis+MySQL 返回插入的主鍵ID的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 移除元素Java實(shí)現(xiàn)方式

    移除元素Java實(shí)現(xiàn)方式

    這篇文章主要介紹了移除元素Java實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • java+selenium實(shí)現(xiàn)滑塊驗(yàn)證

    java+selenium實(shí)現(xiàn)滑塊驗(yàn)證

    現(xiàn)在越來(lái)越多的網(wǎng)站都使用采用滑塊驗(yàn)證來(lái)作為驗(yàn)證機(jī)制,用于判斷用戶是否為人類而不是機(jī)器人,本文就將利用java和selenium實(shí)現(xiàn)滑塊驗(yàn)證,希望對(duì)大家有所幫助
    2023-12-12
  • springboot配置嵌入式servlet容器的方法

    springboot配置嵌入式servlet容器的方法

    這篇文章主要介紹了springboot配置嵌入式servlet容器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • java連接mongoDB并進(jìn)行增刪改查操作實(shí)例詳解

    java連接mongoDB并進(jìn)行增刪改查操作實(shí)例詳解

    這篇文章主要介紹了java連接mongoDB并進(jìn)行增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了java環(huán)境下MongoDB擴(kuò)展包的下載、安裝及操作MongoDB連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • Spring使用注解方式處理事務(wù)

    Spring使用注解方式處理事務(wù)

    這篇文章主要為大家詳細(xì)介紹了Spring使用注解方式處理事務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if

    Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if

    這篇文章主要介紹了Spring?boot?運(yùn)用策略模式實(shí)現(xiàn)避免多次使用if,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • SpringBoot指定激活配置文件的方法

    SpringBoot指定激活配置文件的方法

    Spring Boot 對(duì)多環(huán)境整合已經(jīng)有了很好的支持,能夠在運(yùn)行間、打包時(shí)自由切換環(huán)境,這篇文章主要介紹了SpringBoot指定激活配置文件,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)UTF-8編碼與解碼方式

    Java實(shí)現(xiàn)UTF-8編碼與解碼方式

    這篇文章主要介紹了Java實(shí)現(xiàn)UTF-8編碼與解碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • SpringSecurity整合Jwt過(guò)程圖解

    SpringSecurity整合Jwt過(guò)程圖解

    這篇文章主要介紹了SpringSecurity整合Jwt過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論