日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
springboot使用Redis作緩存使用入門教程

Spring Boot 整合 Redis 實現(xiàn)緩存功能入門教程

未央網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

概述

在當(dāng)今互聯(lián)網(wǎng)時代,系統(tǒng)的性能和用戶體驗至關(guān)重要,緩存技術(shù)作為一種優(yōu)化手段,能夠有效提高系統(tǒng)的訪問速度和并發(fā)處理能力,Redis 是一款高性能的鍵值對存儲系統(tǒng),被廣泛應(yīng)用于緩存、消息隊列等領(lǐng)域,Spring Boot 是一款基于 Spring 框架的微服務(wù)開發(fā)框架,它簡化了配置和部署過程,讓開發(fā)者能夠快速構(gòu)建獨(dú)立的、生產(chǎn)級別的應(yīng)用程序,本文將介紹如何使用 Spring Boot 整合 Redis 實現(xiàn)緩存功能。

環(huán)境準(zhǔn)備

1、安裝 Redis

需要在系統(tǒng)中安裝 Redis,可以從 Redis 官網(wǎng)下載相應(yīng)版本的安裝包,然后按照官方文檔進(jìn)行安裝,安裝完成后,啟動 Redis 服務(wù)。

2、創(chuàng)建 Spring Boot 項目

使用 Spring Initializr(https://start.spring.io/)創(chuàng)建一個 Spring Boot 項目,選擇相應(yīng)的依賴:

– Spring Web

– Spring Data Redis

– Jedis

下載項目后,解壓并導(dǎo)入到開發(fā)工具(如 IntelliJ IDEA、Eclipse 等)。

配置 Redis

在 Spring Boot 項目中,需要在 application.properties 或 application.yml 文件中配置 Redis 相關(guān)屬性。

1、application.properties

Redis 數(shù)據(jù)庫索引(默認(rèn)為 0)
spring.redis.database=0  
Redis 服務(wù)器地址  
spring.redis.host=localhost  
Redis 服務(wù)器連接端口  
spring.redis.port=6379  
Redis 服務(wù)器連接密碼(默認(rèn)為空)
spring.redis.password=  
連接池最大連接數(shù)(使用負(fù)值表示沒有限制)
spring.redis.jedis.pool.max-active=8  
連接池最大阻塞等待時間(使用負(fù)值表示沒有限制)
spring.redis.jedis.pool.max-wait=-1  
連接池中的最大空閑連接
spring.redis.jedis.pool.max-idle=8  
連接池中的最小空閑連接
spring.redis.jedis.pool.min-idle=0  
連接超時時間(毫秒)
spring.redis.timeout=5000  

2、application.yml

spring:
  redis:
    database: 0
    host: localhost
    port: 6379
    password:
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
    timeout: 5000

使用 RedisTemplate

Spring Boot 提供了 RedisTemplate 和 StringRedisTemplate 兩個模板類,用于簡化 Redis 操作,RedisTemplate 是泛型模板,可以操作任意的 Java 對象;StringRedisTemplate 是 RedisTemplate 的子類,專門用于操作字符串。

1、注入 RedisTemplate

在 Spring Boot 主配置類中注入 RedisTemplate:

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;
@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory factory) {
        RedisTemplate template = new RedisTemplate<>();
        template.setConnectionFactory(factory);
        // 使用 Jackson2JsonRedisSerializer 來序列化和反序列化 redis 的 value 值(默認(rèn)使用 JdkSerializationRedisSerializer)
        Jackson2JsonRedisSerializer jacksonSeial = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        //指定要序列化的域,field,get和set,以及修飾范圍,ANY是都有包括private和public
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        //指定序列化輸入的類型,類必須是非final修飾的
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
        jacksonSeial.setObjectMapper(om);
        // 值采用json序列化
        template.setValueSerializer(jacksonSeial);
        //使用StringRedisSerializer來序列化和反序列化redis的key值
        template.setKeySerializer(new StringRedisSerializer());
        // 設(shè)置hash key 和value序列化模式
        template.setHashKeySerializer(new StringRedisSerializer());
        template.setHashValueSerializer(jacksonSeial);
        template.afterPropertiesSet();
        return template;
    }
}

2、使用 RedisTemplate

在業(yè)務(wù)類中,注入 RedisTemplate,并使用它進(jìn)行緩存操作:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class CacheService {
    @Autowired
    private RedisTemplate redisTemplate;
    public void setCache(String key, Object value) {
        redisTemplate.opsForValue().set(key, value);
    }
    public Object getCache(String key) {
        return redisTemplate.opsForValue().get(key);
    }
}

使用緩存注解

Spring Boot 提供了 @Cacheable、@CachePut 和 @CacheEvict 等注解,簡化緩存操作。

1、@Cacheable

@Cacheable 注解用于將方法的返回值緩存到 Redis。

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class UserService {
    @Cacheable(value = "user", key = "#id")
    public User findById(Long id) {
        // 模擬數(shù)據(jù)庫查詢操作
        return new User(id, "張三");
    }
}

2、@CachePut

@CachePut 注解用于更新 Redis 中的緩存。

import org.springframework.cache.annotation.CachePut;
import org.springframework.stereotype.Service;
@Service
public class UserService {
    @CachePut(value = "user", key = "#user.id")
    public User updateUser(User user) {
        // 模擬數(shù)據(jù)庫更新操作
        return user;
    }
}

3、@CacheEvict

@CacheEvict 注解用于刪除 Redis 中的緩存。

import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
@Service
public class UserService {
    @CacheEvict(value = "user", key = "#id")
    public void deleteUser(Long id) {
        // 模擬數(shù)據(jù)庫刪除操作
    }
}

本文介紹了如何使用 Spring Boot 整合 Redis 實現(xiàn)緩存功能,配置了 Redis 相關(guān)屬性;通過 RedisTemplate 和緩存注解簡化了 Redis 操作,通過本文的學(xué)習(xí),讀者可以快速上手 Spring Boot 與 Redis 的集成開發(fā),提高系統(tǒng)的性能和并發(fā)處理能力。


網(wǎng)頁名稱:springboot使用Redis作緩存使用入門教程
網(wǎng)站路徑:http://www.dlmjj.cn/article/djscjgi.html