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

Redis實現Session持久化的示例代碼

 更新時間:2023年09月19日 09:02:16   作者:愛敲代碼的三毛  
Redis是內存數據庫,數據都是存儲在內存中,為了避免服務器斷電等原因導致Redis進程異常退出后數據的永久丟失,本文主要介紹了Redis實現Session持久化的示例代碼,感興趣的可以了解一下

1. 前言

直接使用Session存儲用戶登錄信息,此時的會話信息是存儲在內中的,只要項目重啟存儲的Session信息就會丟失。而使用Redis存儲Session的話就不會存在這種情況,即使項目重啟也并不影響,也無需用戶重新登錄。使用Redis存儲Session,還能讓項目支持分布式的,比如項目部署在多臺機器上把多臺機器的Session信息存到同一個Redis服務器上,就可以避免用戶每次訪問不同服務器都要進行登錄的問題。

2. 操作步驟

添加依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>

修改配置文件

# 指定Spring Session的存儲類型為Redis,表示會將Session數據存儲在Redis中
spring.session.store-type=redis
# 設置Session的超時時間為1800秒(30分鐘)
server.servlet.session.timeout=1800
# 設置Redis的刷新模式為在保存時刷新,表示在Session數據保存到Redis時會刷新過期時間。
spring.session.redis.flush-mode=on_save
# 設置Redis的命名空間為spring:session,用于區(qū)分不同的Session數據。
spring.session.redis.namespace=spring:session
# 設置Redis服務器的主機地址
spring.redis.host=120.25.124.200
# 指定Redis服務器的密碼
spring.redis.password=
# 指定Redis服務器的端口號
spring.redis.port=6379

操作代碼

配置完Redis相關配置后,以前的代碼無需修項目就可以支持Session持久化了。

存儲到Redis

@PostMapping("/login")
public Response login(String username, String password,HttpServletRequest request,HttpSession httpSession) {
    if (username == null || password == null || "".equals(username.trim()) || "".equals(password.trim()) ){
        return Response.fail("用戶密碼錯誤");
    }
    User user = userService.byNameUser(username);
    if (user != null && PasswordUtil.check(password,user.getPassword())) {
        HttpSession session = request.getSession(true);
        session.setAttribute(Constant.USER_SESSION,user.getUsername());
        return Response.success("登錄成功");
    }
    return Response.fail("用戶名密碼錯誤");
}

從Redis中讀取代碼

@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    HttpSession session = request.getSession(false);
    if (session != null && session.getAttribute(Constant.USER_SESSION) != null) {
        return true;
    }
    response.sendRedirect("/login.html");
    return false;
}

SSH隧道

在本地編寫代碼需要用到服務器上的Redis的時候需要開放端口,但Redis的端口一旦暴露到了公網就會非常危險,容易被黑客入侵。修改端口掩耳盜鈴可以是可以,但更好的做法是使用SSH端口轉發(fā)。SSH默認是走22端口,SSH功能非常強大,其中端口轉發(fā)就是其中很重要的一個特性。相當于通過SSH的22號端口,來傳遞其他端口的數據。

本身我們是通過windows主機訪問云服務器的6379端口,于是就構造了一個特殊的SSH數據報,就把要訪問redis的請求,放到了SSH 數據報里。這個數據就會通過22號端口發(fā)送給服務器,服務器的SSH服務器程序,就能夠解析出上訴的數據報,然后把這個數據報交給6379端口的程序。

  # 設置Redis服務器的主機地址
  spring.redis.host=127.0.0.1
  # 指定Redis服務器的密碼
  spring.redis.password=
  # 指定Redis服務器的端口號
  spring.redis.port=8888

到此這篇關于Redis實現Session持久化的示例代碼的文章就介紹到這了,更多相關Redis Session持久化內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Redis 實現同步鎖案例

    Redis 實現同步鎖案例

    這篇文章主要介紹了Redis 實現同步鎖案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Redis Template使用詳解示例教程

    Redis Template使用詳解示例教程

    RedisTemplate的底層通過RedisConnectionFactory對多種Redis驅動進行集成,上層通過RedisOperations提供豐富的API,并結合Spring基于泛型的bean注入,為開發(fā)提供了極大的便利,這篇文章主要介紹了Redis Template使用詳解示例教程,需要的朋友可以參考下
    2023-11-11
  • Redis安裝教程圖解

    Redis安裝教程圖解

    Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫,并提供多種語言的API。本文就教大家如何安裝Redis,需要的朋友可以參考下
    2015-10-10
  • Redis獲取某個大key值的腳本實例

    Redis獲取某個大key值的腳本實例

    這篇文章主要給大家分享介紹了關于Redis獲取某個大key值的一個腳本實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-04-04
  • Redis解決緩存一致性問題

    Redis解決緩存一致性問題

    本文主要介紹了Redis?解決緩存一致性問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-10-10
  • Redis壓縮列表的設計與實現

    Redis壓縮列表的設計與實現

    壓縮列表(Ziplist)是 Redis 為了節(jié)省內存而設計的一種緊湊型數據結構,主要用于存儲長度較短且數量較少的元素集合,本文給大家介紹了Redis壓縮列表的設計與實現,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2024-08-08
  • Redis高可用之持久化

    Redis高可用之持久化

    在web服務器中,高可用是指服務器可以正常訪問的時間,衡量的標準是在多長時間內可以提供正常服務(99.9%、99.99%、99.999%等等),Redis中,實現高可用的技術主要包括持久化、主從復制、哨兵和cluster集群,感興趣的同學可以閱讀本文
    2023-04-04
  • Redis慢查詢的實現

    Redis慢查詢的實現

    本文主要介紹了Redis慢查詢的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Redis 同步機制全面解析

    Redis 同步機制全面解析

    本文系統(tǒng)解析了Redis的同步機制,涵蓋主從復制、哨兵模式和集群模式,主從實現數據備份與讀寫分離,哨兵保障高可用自動故障轉移,集群支持分布式分片與水平擴展,感興趣的朋友一起看看吧
    2025-09-09
  • 解決Redis設置密碼重啟后失效的問題

    解決Redis設置密碼重啟后失效的問題

    今天小編就為大家分享一篇解決Redis設置密碼重啟后失效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評論

惠水县| 汕尾市| 华安县| 东莞市| 鹿邑县| 左贡县| 兴和县| 凤城市| 承德市| 浏阳市| 永平县| 塘沽区| 南部县| 八宿县| 全南县| 陵川县| 休宁县| 当阳市| 恩施市| 安阳市| 监利县| 长白| 新巴尔虎右旗| 大足县| 岗巴县| 松潘县| 绥中县| 盐津县| 上蔡县| 车致| 甘德县| 合水县| 罗平县| 揭西县| 同德县| 崇州市| 台北县| 龙山县| 略阳县| 东乡县| 财经|