1. 程式人生 > >Spring Boot使用Redis如何實現Session共享

Spring Boot使用Redis如何實現Session共享

首先了解一下Spring Boot框架,Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。

Spring Boot是一些庫的集合,它能夠被任意專案的構建系統所使用。為了方便期間,該框架也提供了命令列介面,它可以用來執行和測試Boot應用。框架的釋出版本,包括整合的CLI(命令列介面),可以在Spring倉庫中手動下載和安裝。另外一種更為簡便的方式是使用Groovy環境管理器(Groovy enVironment Manager,GVM),它會處理Boot版本的安裝和管理。Boot及其CLI可以通過GVM的命令列gvm install springboot進行安裝。在OS X上安裝Boot可以使用Homebrew包管理器。為了完成安裝,首先要使用brew tap pivotal/tap切換到Pivotal倉庫中,然後執行brew install springboot命令。

Spring Boot特點包含如下:
1. 建立獨立的Spring應用程式
2. 嵌入的Tomcat,無需部署WAR檔案
3. 簡化Maven配置
4. 自動配置Spring
5. 提供生產就緒型功能,如指標,健康檢查和外部配置
6. 絕對沒有程式碼生成和對XML沒有要求配置

簡單介紹完Spring Boot微框架後,下面為大家講述一下Spring Boot微框架如何使用Redis 來實現Session共享的,Redis服務下載原始碼部署到Windows系統或者Linux系統就可以了,此處省略如何安裝Redis服務,如果對Redis快取服務有什麼疑惑可留言諮詢。
步驟一:引入相關依賴jar包,在maven的pom.xml檔案中增加如下圖依賴:這裡寫圖片描述


步驟二:使用Spring Boot中@EnableRedisHttpSession註解開啟Spring session支援,新建RedisSessionConfig.java類,具體程式碼如下圖:這裡寫圖片描述
分析:@EnableRedisHttpSession註解其中maxInactiveIntervalInSeconds引數是設定Session失效時間,開啟註解後spring會生成一個新的攔截器,用於實現Session共享操作,配置的@Bean註解讓Spring根據配置檔案連線Redis服務。

步驟三:配置Redis服務,在專案中使用redis.properties檔案,增加如下圖配置資訊,用於連線Redis服務:
這裡寫圖片描述


host是redis服務地址,password是密碼一般預設密碼為空,port是埠號,database資料庫索引預設為0,timeout是連線超時時間(毫秒),其他引數省略。

步驟四:測試方法獲取sessionid值,具體程式碼如下圖:這裡寫圖片描述

登入redis服務輸入命令“keys ‘sessions‘”,結果如下圖:
這裡寫圖片描述
其中“1472976480000”為失效時間含義是超過這個時間就會被銷燬,“57de45f-c91b-5dd0-98c1-b28e1b8a1355”為sessionid值,登入訪問http://localhost:8080/uid地址會發現是結果相同,說明session已經在redis服務中被有效的儲存。

有的人會問如何在兩臺或多臺服務上實現共享session,其實原理很簡單參考上述步驟在另外一個專案中配置一次,啟動後就會實現session共享。

相關推薦

spring+redis 實現 session 共享

使用Nginx+Tomcat進行負載均衡時,希望使用輪詢方式進行負載。但是如果使用輪詢方式的話,可能會訪問不同的Tomcat

Spring Session Data Redis實現session共享

web.xml odi 數據庫 tails spool ima 配置步驟 配置文件 work 1.前言   在開發中遇到一個關於用戶體驗的問題,每次當運維進行更新重啟服務器時,都會導致會員平臺中已登錄的用戶掉線。這是因為每個用戶的會話信息及狀態都是由session來保存的,

springboot2整合spring-session-data-redis,實現session共享

1.新增Maven依賴 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId>

Spring-Session+Redis實現session共享

1、新增依賴 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId>

使用redis實現session共享(基於Spring Boot)

Session 共享 什麼是 Session 由於 HTTP 協議是無狀態的協議,所以服務端需要記錄使用者的狀態時,就需要用某種機制來識具體的使用者。Session 是另一種記錄客戶狀態的機制,不同的是 Cookie 儲存在客戶端瀏覽器中,而 Session 儲存在伺服器上。客戶端瀏覽器訪問

使用Spring-Session Redis實現Session共享

知其然,還要知其所以然 ! 本篇介紹Spring-Session的整個實現的原理。以及對核心的原始碼進行簡單的介紹! 實現原理介紹 實現原理這裡簡單說明描述: 就是當Web伺服器接收到http請求後,當請求進入對應的Filter進行過濾,將原本需要由web伺服器

spring-session-data-redis 實現session共享

1.新增依賴 <dependency>             <groupId>redis.clients</groupId>             <

Spring-session+mongodb實現session共享

pom.xml配置 首先需要引入依賴包,直接在pom.xml中新增以下程式碼即可。 <!-- spring-session整合mongodb --> <dependency> <groupId>org.spri

Spring-Session實現Session共享實現原理以及原始碼解析

知其然,還要知其所以然 ! 本篇介紹Spring-Session的整個實現的原理。以及對核心的原始碼進行簡單的介紹! 實現原理介紹 實現原理這裡簡單說明描述: 就是當Web伺服器接收到http請求後,當請求進入對應的Filter進行過濾,

Spring Data實現分散式共享session

1、自定義HttpSession實現Session https://www.cnblogs.com/youzhibing/p/7348337.html 2、Spring整合Jedis2.9(叢集帶密碼版) https://blog.csdn.net/cslucifer/article/d

Nginx+Tomcat搭建叢集,Spring Session+Redis實現Session共享

小夥伴們好久不見!最近略忙,部落格寫的有點少,嗯,要加把勁。OK,今天給大家帶來一個JavaWeb中常用的架構搭建,即Nginx+Tomcat搭建服務叢集,然後通過Spring Session+Redis實現Session共享。 閱讀本文需要有如下知識點:

Spring Session + Redis 實現session共享

這裡主要介紹一下基於xml的配置:1. 在pom.xml檔案中引入所需依賴<!-- spring-session begin--> <dependency>

spring security 在沒實現session共享的叢集環境下 防止使用者多次登入的 實現思路

背景 專案採用阿里雲負載均衡,基於cookie的會話保持。 沒有實現叢集間的session共享。 專案採用spring security 並且配置了session策略如下: <bean class="or

Spring MVC 使用 Spring Session 實現 Session 共享-Redis

使用Spring Session 通過 Redis 實現 Session 共享,用於多例項應用 Session 共享的簡單原理 使用者第一次訪問應用時,應用會建立一個新的 Session,並且會將 Session 的 ID 作為 C

Spring boot + shiro + redis 實現session共享(偽單點登入)

    為實現Web應用的分散式叢集部署,要解決登入session的統一。本文利用shiro做許可權控制,redis做session儲存,結合spring boot快速配置實現session共享。注意本文未解決跨域的問題。不過對於一般的情況能夠很好的起到作用,具體已經在不同埠

spring,shiro,redis實現session共享

用到的redis jar如下 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <

Spring-Session實現Session共享Redis叢集方式配置教程

循序漸進,由易到難,這樣才更有樂趣! 概述 本篇開始繼續上一篇的內容基礎上進行,本篇主要介紹Spring-Session實現配置使用Redis叢集,會有兩種配置方式,一種是Redis-Cluster,一種是Redis-Sentinel,並通過一個

spring Session + Redis叢集 + 哨兵部署下實現Session共享

1.共享Session問題 HttpSession是通過Servlet容器建立和管理的,像Tomcat/Jetty都是儲存在記憶體中的。而如果我們把web伺服器搭建成分散式的叢集,然後利用LVS或Nginx做負載均衡,那麼來自同一使用者的Http請求將有可能被分發到兩個不同

Spring Boot使用Redis如何實現Session共享

首先了解一下Spring Boot框架,Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。 Spring Boot

spring+shiro+redis實現session共享

利用spring的RedisTemplate實現session的存取,先配置applicationContext-shiro.xml <!-- 會話管理器 --> <bean id="sessionManager" class=