欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Redis存儲SpringBoot項目中Session的詳細(xì)步驟

 更新時間:2024年06月28日 11:24:12   作者:GP0071  
在開發(fā)Spring Boot項目時,我們通常會遇到如何高效管理Session的問題,默認(rèn)情況下,Spring Boot會將Session存儲在內(nèi)存中,今天,我們將學(xué)習(xí)如何將Session存儲從內(nèi)存切換到Redis,并驗證配置是否成功,需要的朋友可以參考下

使用Redis存儲Spring Boot項目中的Session

在開發(fā)Spring Boot項目時,我們通常會遇到如何高效管理Session的問題。默認(rèn)情況下,Spring Boot會將Session存儲在內(nèi)存中。但在分布式系統(tǒng)中,這種方式顯然不太合適。今天,我們將學(xué)習(xí)如何將Session存儲從內(nèi)存切換到Redis,并驗證配置是否成功。

步驟一:添加依賴

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-redis")
    implementation("org.springframework.session:spring-session-data-redis")
}

步驟二:配置Redis連接

接下來,我們需要在配置文件中添加Redis連接信息。你可以選擇使用application.ymlapplication.properties文件。

示例:application.yml

spring:
  redis:
    host: localhost
    port: 6379
    password: ""
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0

server:
  servlet:
    session:
      store-type: redis  # 使用Redis存儲Session

示例:application.properties

spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0

server.servlet.session.store-type=redis  # 使用Redis存儲Session

步驟三:啟用Spring Session

在主類中添加@EnableRedisHttpSession注解,使Spring Boot能夠使用Redis管理Session。

示例代碼

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

@SpringBootApplication
@EnableRedisHttpSession
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

步驟四:檢查和測試

完成配置后,重新啟動你的Spring Boot應(yīng)用程序,并進(jìn)行以下驗證:

方法一:使用Redis命令行客戶端

  • 連接到Redis服務(wù)器
redis-cli -h localhost -p 6379
  • 查詢Session數(shù)據(jù)
KEYS spring:session:sessions:*
  • 查看具體Session數(shù)據(jù)
HGETALL spring:session:sessions:<session-id>

方法二:使用Redis GUI工具

你可以使用Redis Desktop Manager、Medis或RedisInsight等圖形界面工具,連接到Redis服務(wù)器并查看存儲的Session數(shù)據(jù)。

方法三:在代碼中查看

通過添加日志或調(diào)試信息,輸出當(dāng)前的Session ID和內(nèi)容。

示例代碼

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;
import java.util.Enumeration;

@RestController
public class SessionController {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @GetMapping("/check-session")
    public String checkSession(HttpSession session) {
        String sessionId = session.getId();
        Enumeration<String> attributeNames = session.getAttributeNames();
        StringBuilder sessionData = new StringBuilder("Session ID: " + sessionId + "\n");

        while (attributeNames.hasMoreElements()) {
            String attributeName = attributeNames.nextElement();
            sessionData.append(attributeName).append(": ").append(session.getAttribute(attributeName)).append("\n");
        }

        // 在日志中輸出Session ID和內(nèi)容
        System.out.println(sessionData.toString());

        // 檢查Redis中是否存在該Session ID
        Boolean hasKey = redisTemplate.hasKey("spring:session:sessions:" + sessionId);
        return hasKey != null && hasKey ? "Session stored in Redis" : "Session not found in Redis";
    }
}

通過訪問 /check-session 端點,可以查看當(dāng)前Session的ID和內(nèi)容,并確認(rèn)是否成功存儲在Redis中。

到此這篇關(guān)于使用Redis存儲SpringBoot項目中Session的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Redis存儲SpringBoot的session內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何監(jiān)聽Redis中Key值的變化(SpringBoot整合)

    如何監(jiān)聽Redis中Key值的變化(SpringBoot整合)

    測試過程中我們有一部分常量值放入redis,共大部分應(yīng)用調(diào)用,但在測試過程中經(jīng)常有人會清空redis,回歸測試,下面這篇文章主要給大家介紹了關(guān)于如何監(jiān)聽Redis中Key值變化的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 分布式鎖三種實現(xiàn)方式及對比

    分布式鎖三種實現(xiàn)方式及對比

    這篇文章主要介紹了分布式鎖三種實現(xiàn)方式及對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • 在Redis中如何保存時間序列數(shù)據(jù)詳解

    在Redis中如何保存時間序列數(shù)據(jù)詳解

    與發(fā)生時間相關(guān)的一組數(shù)據(jù),就是時間序列數(shù)據(jù),這些數(shù)據(jù)的特點是沒有嚴(yán)格的關(guān)系模型,記錄的信息可以表示成鍵和值的關(guān)系,這篇文章主要給大家介紹了關(guān)于在Redis中如何保存時間序列數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • Redis?sentinel哨兵集群的實現(xiàn)步驟

    Redis?sentinel哨兵集群的實現(xiàn)步驟

    本文主要介紹了Redis?sentinel哨兵集群的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 淺談redis整數(shù)集為什么不能降級

    淺談redis整數(shù)集為什么不能降級

    本文主要介紹了redis整數(shù)集為什么不能降級,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 內(nèi)存型數(shù)據(jù)庫Redis持久化小結(jié)

    內(nèi)存型數(shù)據(jù)庫Redis持久化小結(jié)

    redis是一個支持持久化的內(nèi)存數(shù)據(jù)庫,也就是說redis需要經(jīng)常將內(nèi)存中的數(shù)據(jù)同步到磁盤來保證持久化.redis支持四種持久化方式,一是 Snapshotting(快照)也是默認(rèn)方式,二是Append-only file(縮寫aof)的方式,三是虛擬內(nèi)存方式,四是diskstore方式.今天我們總結(jié)下前2種。
    2017-09-09
  • Redis實現(xiàn)分布式鎖的示例代碼

    Redis實現(xiàn)分布式鎖的示例代碼

    日常開發(fā)中,秒殺下單、搶紅包等等業(yè)務(wù)場景,都需要用到分布式鎖,本文主要介紹了Redis實現(xiàn)分布式鎖的示例代碼,感興趣的可以了解一下
    2023-10-10
  • Redis?抽獎大轉(zhuǎn)盤的實戰(zhàn)示例

    Redis?抽獎大轉(zhuǎn)盤的實戰(zhàn)示例

    本文主要介紹了Redis?抽獎大轉(zhuǎn)盤的實戰(zhàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Redis的Sentinel解決方案介紹與運行機(jī)制

    Redis的Sentinel解決方案介紹與運行機(jī)制

    這篇文章主要介紹了Redis的Sentinel解決方案介紹與運行機(jī)制, Sentinel 是一款面向分布式服務(wù)架構(gòu)的輕量級流量控制組件,主要以流量為切入點,從流量控制、熔斷降級、系統(tǒng)自適應(yīng)保護(hù)等多個維度來保障服務(wù)的穩(wěn)定性,需要的朋友可以參考下
    2023-07-07
  • Redis底層數(shù)據(jù)結(jié)構(gòu)詳解

    Redis底層數(shù)據(jù)結(jié)構(gòu)詳解

    這篇文章主要介紹了Redis底層數(shù)據(jù)結(jié)構(gòu),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08

最新評論