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

Redis Java 集成到 Spring Boot的詳細(xì)過程

 更新時間:2024年12月30日 11:00:22   作者:明志學(xué)編程  
本文介紹了如何使用SpringBoot連接Redis,并展示了如何配置Redis服務(wù)地址、創(chuàng)建Controller類以及進(jìn)行基本的Redis操作,如字符串、列表、集合、哈希和有序集合,感興趣的朋友跟隨小編一起看看吧

一、使用 Spring Boot 連接 Redis 單機(jī)

1.創(chuàng)建Spring Boot 項目

2.勾選相關(guān)依賴(Dependencies)

  • NoSQL 中的 Spring Data Redis
  • 把 Web 中的 Spring Web 也勾選?下.
  • 方便寫接口進(jìn)行后續(xù)測試.

3.界面顯示

二、配置 Redis 服務(wù)地址

1.在 application.yml 中配置

spring:
  data:
    redis:
      host: 127.0.0.1 # 地址
      port: 8888 # 映射的端口號

補(bǔ)充:
Spring Boot 1.x 和 Spring Boot 2.x 中,spring.redis.host 用于配置 Redis 連接屬性。
Spring Boot 3.x 中,spring.redis.host 已經(jīng)棄用。
從 Spring Boot 2.x 開始,引入了 spring.data.redis 作為配置 Redis 連接的方式,并且在 Spring Boot 3.x 中也可以使用 spring.data.redis 進(jìn)行配置。

2.映射端口號

用Shell8 進(jìn)行配置,需要一個公網(wǎng)ip

三、創(chuàng)建 Controller 類

1.創(chuàng)建一個 MyController

由于當(dāng)前只是寫簡單的測試代碼, 我們就不進(jìn)?分層了. 就只創(chuàng)建個簡單的 Controller 即可.

@RestController
public class MyController {
 @Autowired
 private StringRedisTemplate redisTemplate;
}

StringRedisTemplate 用來處理文本數(shù)據(jù)的
繼承于RedisTemplate
RedisTemplate 可以處理文本數(shù)據(jù)也可以處理二進(jìn)制數(shù)據(jù)

2.使用 String

@GetMapping("/testString")
@ResponseBody
public String testString() {
    //先清除之前的數(shù)據(jù)庫
    redisTemplate.execute((RedisConnection connection) -> {
        connection.flushAll();
        return null;
    });
    //對原生 redis 又做了進(jìn)一步封裝
    redisTemplate.opsForValue().set("key", "111");
    redisTemplate.opsForValue().set("key2", "222");
    redisTemplate.opsForValue().set("key3", "333");
    String value = redisTemplate.opsForValue().get("key");
    System.out.println("value:" + value);
    return "OK";
}
  • 該代碼片段是一個 Spring Boot 控制器方法,通過 RedisTemplate 與 Redis 進(jìn)行交互,并進(jìn)行一些基本的操作redisTemplate.execute((RedisConnection connection) -> { ... }):這行代碼調(diào)用了
  • RedisTemplateexecute 方法,執(zhí)行一個 Redis 操作。具體來說,connection.flushAll() 會清空 Redis 中的所有數(shù)據(jù)(即調(diào)用 FLUSHALL 命令)。execute 方法通過 Lambda 表達(dá)式傳遞了一個 Redis 連接對象,用來執(zhí)行 Redis 命令。執(zhí)行完 flushAll 后,Redis 中的所有數(shù)據(jù)會被刪除。
  • redisTemplate.opsForValue() 相當(dāng)于對命令進(jìn)行進(jìn)一步的封裝,用它可以調(diào)用相關(guān)方法。

客戶端發(fā)送請求(返回OK)表明已經(jīng)成功

打印日志

3.使用 List

@GetMapping("/testList")
@ResponseBody
public String testList() {
    //先清除之前的數(shù)據(jù)庫
    redisTemplate.execute((RedisConnection connection) -> {
        connection.flushAll();
        return null;
    });
    redisTemplate.opsForList().leftPush("key", "111");
    redisTemplate.opsForList().leftPush("key", "222");
    redisTemplate.opsForList().leftPush("key", "333");
    String value = redisTemplate.opsForList().leftPop("key");
    System.out.println("value: " + value);
    value = redisTemplate.opsForList().leftPop("key");
    System.out.println("value: " + value);
    value = redisTemplate.opsForList().leftPop("key");
    System.out.println("value: " + value);
    return "OK";
}

客戶端發(fā)送請求(返回OK)表明已經(jīng)成功

打印日志

4.使用 Set

@GetMapping("/testSet")
@ResponseBody
public String testSet() {
    //先清除之前的數(shù)據(jù)庫
    redisTemplate.execute((RedisConnection connection) -> {
        connection.flushAll();
        return null;
    });
    redisTemplate.opsForSet().add("key", "111", "222", "333");
    Set<String> result = redisTemplate.opsForSet().members("key");
    System.out.println("result: " + result);
    Boolean exists = redisTemplate.opsForSet().isMember("key", "111");
    System.out.println("existe: " + exists);
    Long count = redisTemplate.opsForSet().size("key");
    System.out.println("count: " + count);
    redisTemplate.opsForSet().remove("key", "111", "222");
    result = redisTemplate.opsForSet().members("key");
    System.out.println("result: " + result);
    return "OK";
}

客戶端發(fā)送請求(返回OK)表明已經(jīng)成功

打印日志

5.使用 Hash

@GetMapping("/testHash")
@ResponseBody
public String testHash() {
    //先清除之前的數(shù)據(jù)庫
    redisTemplate.execute((RedisConnection connection) -> {
        connection.flushAll();
        return null;
    });
    redisTemplate.opsForHash().put("key", "f1", "111");
    Map<String, String> map = new HashMap<>();
    map.put("f2", "222");
    map.put("f3", "333");
    redisTemplate.opsForHash().putAll("key", map);
    String value = (String) redisTemplate.opsForHash().get("key", "f1");
    System.out.println("value: " + value);
    Boolean exists = redisTemplate.opsForHash().hasKey("key", "f1");
    System.out.println("exists: " + exists);
    redisTemplate.opsForHash().delete("key", "f1", "f2");
    Long len = redisTemplate.opsForHash().size("key");
    System.out.println("len: " + len);
    return "OK";
}

客戶端發(fā)送請求(返回OK)表明已經(jīng)成功

打印日志

6.使用 ZSet

@GetMapping("/testZSet")
@ResponseBody
public String testZSet() {
    //先清除之前的數(shù)據(jù)庫
    redisTemplate.execute((RedisConnection connection) -> {
        connection.flushAll();
        return null;
    });
    redisTemplate.opsForZSet().add("key", "zhangsan", 10);
    redisTemplate.opsForZSet().add("key", "lisi", 20);
    redisTemplate.opsForZSet().add("key", "wangwu", 30);
    Set<String> members = redisTemplate.opsForZSet().range("key", 0, -1);
    System.out.println("members: " + members);
    Set<ZSetOperations.TypedTuple<String>> membersWithScores = redisTemplate.opsForZSet().rangeWithScores("key", 0, -1);
    System.out.println("membersWithScores: " + membersWithScores);
    Double score = redisTemplate.opsForZSet().score("key", "zhangsan");
    System.out.println("score: " + score);
    redisTemplate.opsForZSet().remove("key", "zhangsan");
    Long size = redisTemplate.opsForZSet().size("key");
    System.out.println("size: " + size);
    Long rank = redisTemplate.opsForZSet().rank("key", "lisi");
    System.out.println("rank: " + rank);
    return "OK";
 }

客戶端發(fā)送請求(返回OK)表明已經(jīng)成功

打印日志

四、小結(jié)

  • 對于 Jedis 來說, 各個方法和 Redis 的命令基本是一致的.
  • 而集成到 Spring Boot 之后, 接口上和原始 Redis命令存在部分差別, 但是使用起來也并不困難, 只要大家熟悉 Redis 的基本操作, 還是很容易可以通過方法名字理解用法的.

到此這篇關(guān)于Redis Java 集成到 Spring Boot的文章就介紹到這了,更多相關(guān)Redis Java 集成到 Spring Boot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java:json-path支持fastjson作為JSON解析提供者的技術(shù)實現(xiàn)方式

    java:json-path支持fastjson作為JSON解析提供者的技術(shù)實現(xiàn)方式

    json-path和fastjson都是Java中常用的JSON處理庫,json-path支持多種解析器,而fastjson具有高性能,通過擴(kuò)展json-path,使其支持fastjson,可以在保持json-path強(qiáng)大功能的同時,享受fastjson的高性能優(yōu)勢
    2025-12-12
  • vue+springboot讀取git的markdown文件并展示功能

    vue+springboot讀取git的markdown文件并展示功能

    Markdown-it 是一個用于解析和渲染 Markdown 標(biāo)記語言的 JavaScript 庫,使用 Markdown-it,你可以將 Markdown 文本解析為 HTML 輸出,并且可以根據(jù)需要添加功能、擴(kuò)展語法或修改解析行為,本文介紹vue+springboot讀取git的markdown文件并展示,感興趣的朋友一起看看吧
    2024-01-01
  • Springboot自定義全局異常問題

    Springboot自定義全局異常問題

    這篇文章主要介紹了Springboot自定義全局異常問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 手把手教你SpringBoot輕松整合Minio

    手把手教你SpringBoot輕松整合Minio

    這篇文章主要介紹了手把手教你SpringBoot輕松整合Minio的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2021-01-01
  • Spring中@Value使用詳解及SPEL表達(dá)式

    Spring中@Value使用詳解及SPEL表達(dá)式

    這篇文章主要介紹了Spring中@Value使用詳解及SPEL表達(dá)式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Spring cache整合redis代碼實例

    Spring cache整合redis代碼實例

    這篇文章主要介紹了Spring cache整合redis代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java中的異常Exception與處理方式詳解

    Java中的異常Exception與處理方式詳解

    這篇文章主要介紹了Java中的異常Exception與處理方式詳解, Java語言中,將程序執(zhí)行中發(fā)生的不正常情況稱為"異常"(開發(fā)過程中的語法錯誤和邏輯錯誤不是異常),需要的朋友可以參考下
    2024-01-01
  • springboot中添加靜態(tài)頁面的三種實現(xiàn)方案與對比

    springboot中添加靜態(tài)頁面的三種實現(xiàn)方案與對比

    這篇文章主要為大家詳細(xì)介紹了springboot中添加靜態(tài)頁面的三種實現(xiàn)方案與對比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-11-11
  • java 從int數(shù)組中獲取最大數(shù)的方法

    java 從int數(shù)組中獲取最大數(shù)的方法

    這篇文章主要介紹了java 從int數(shù)組中獲取最大數(shù)的方法,需要的朋友可以參考下
    2017-02-02
  • 解析Orika的MapperFacade 屬性賦值的使用問題

    解析Orika的MapperFacade 屬性賦值的使用問題

    在我們實際開發(fā)中,常常會有對象與對象之間的轉(zhuǎn)化,或者把一個對象的數(shù)據(jù)轉(zhuǎn)化到另一個數(shù)據(jù)之中,如果我們手動的一個一個的set就會比較麻煩,代碼段看起來也會比較長。而Orika的MapperFacade就是解決這個問題的,實現(xiàn)對象屬性的復(fù)制
    2021-12-12

最新評論

仁化县| 丁青县| 兴宁市| 富蕴县| 纳雍县| 陆河县| 泊头市| 德庆县| 文安县| 湟源县| 江阴市| 黄平县| 杭锦旗| 无棣县| 盐津县| 永丰县| 苗栗市| 仙游县| 沽源县| 招远市| 贵阳市| 会宁县| 将乐县| 福清市| 昌邑市| 桂东县| 饶平县| 木里| 巴林右旗| 丹棱县| 铅山县| 宁城县| 班玛县| 洛隆县| 夏邑县| 阜阳市| 新疆| 肃北| 聂拉木县| 新晃| 莆田市|