首頁 > 資料庫 > Redis > SpringBoot整合如何使用Redis

SpringBoot整合如何使用Redis

PHPz
發布: 2023-05-28 12:18:33
轉載
724 人瀏覽過

    SpringBoot整合使用redis

    Jedis 是 Redis 官方推出的一款面向 Java 的客戶端,提供了許多介面供 Java 語言呼叫。可以在Redis 官網下載. Spring-data-redis 是spring 大家族的一部分,提供了在srping 應用中通過簡單的配置訪問redis 服務,對reids 底層開發包(Jedis, JRedis, and RJC)進行了高度封裝, RedisTemplate 提供了redis 各種操作

    spring-data-redis 針對jedis 提供了下列功能:

    1. 連線池自動管理,提供了一個高度封裝的「RedisTemplate ”類別.

    2. 針對jedis 用戶端中大量api 進行了歸類封裝,將相同類型操作封裝為operation 介面.

    ValueOperations :簡單K-V 操作

    SetOperations:set 類型資料操作

    ZSetOperations:zset 類型資料操作

    HashOperations:針對map 類型的資料操作

    ListOperations:針對list 類型的資料操作

    3.將事務操作封裝,有容器控制。

    4.針對資料的“序列化/反序列化”,提供了多種可選擇策略(RedisSerializer)

    JdkSerializationRedisSerializer:POJO 物件的存取場景,使用JDK 本身序列化機制.

    StringRedisSerializer:Key 或value 為字串的場景,根據指定的charset 對資料的位元組序列編碼成string,是「new String(bytes, charset)」和「string.getBytes(charset )」的直接封裝。是最輕量級和高效的策略。

    JacksonJsonRedisSerializer:jackson-json 工具提供了 javabean 與 json 之 間的轉換能力,可以將 pojo 實例序列化成 json 格式儲存在 redis 中,也可以將 json 格式的資料轉換成 pojo 實例。

    搭建

    1.導入jar套件

    SpringBoot整合如何使用Redis

    <dependency> 
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId> 
    </dependency>
    登入後複製

    SpringBoot整合如何使用Redis

    2.設定連接redis

    SpringBoot整合如何使用Redis

    SpringBoot整合如何使用Redis

    spring: 
     redis: 
     	host: 192.168.31.100 
     	port: 6379
        password: 111 
        database: 0 
        pool: max-active: 8 # 连接池最大连接数(使用负值表示没有限制) 
        	max-wait: -1ms # 连接池最大阻塞等待时间(使用负值表示没有限制)
    		max-idle: 8 # 连接池中的最大空闲连接 
    		min-idle: 0 # 连接池中的最小空闲连接 
    		timeout: 5000ms # 连接超时时间(毫秒)
    登入後複製

    在application.yml檔案中spring下新增如上設定

    3.新增設定類別RedisConfig

    SpringBoot整合如何使用Redis

    package com.ffyc.back.demo.config;
    
    import com.fasterxml.jackson.annotation.JsonAutoDetect;
    import com.fasterxml.jackson.annotation.JsonTypeInfo;
    import com.fasterxml.jackson.annotation.PropertyAccessor;
    import com.fasterxml.jackson.databind.DeserializationFeature;
    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.data.redis.connection.RedisConnectionFactory;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
    import org.springframework.data.redis.serializer.StringRedisSerializer;
    @Configuration
    public class RedisConfig {
        /**
         * 序列化键,值
         * @param connectionFactory
         * @return
         */
        @Bean
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
            RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
            redisTemplate.setConnectionFactory(connectionFactory);
            Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);
            StringRedisSerializer redisSerializer = new StringRedisSerializer();
            redisTemplate.setKeySerializer(redisSerializer);
            redisTemplate.setHashKeySerializer(redisSerializer);
            redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
            redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
            return redisTemplate;
        }
    }
    登入後複製

    在組態包中新增此組態

    此組態類別的作用是將後端將要傳過去的資料json序列化,如果沒有此組態的話後端傳過去的格式和redis端的不合碼情況

    4.注入RedisTemplate

    SpringBoot整合如何使用Redis

    SpringBoot整合如何使用Redis

    SpringBoot整合如何使用Redis

    在需要使用的地方注入註入後就可以使用了

    5.測試和使用

    SpringBoot整合如何使用Redis

    使用實例:

    (1)

    SpringBoot整合如何使用Redis

    (2)

    SpringBoot整合如何使用Redis

    #

    以上是SpringBoot整合如何使用Redis的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    相關標籤:
    來源:yisu.com
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板