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

redis保存session信息的示例代碼

 更新時間:2023年01月16日 14:47:14   作者:catch?that?elf  
本文實現(xiàn)一個將session信息保存在 redis中,多個tomcat中的工程都從redis獲取session信息的示例,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

本文實現(xiàn)一個將session信息保存在 redis中,多個tomcat中的工程都從redis獲取session信息的示例。

1、新建一個maven web 工程名為 session-redis 如下:

目錄結構如下:

2、修改配置文件內(nèi)容

pom.xml 中依賴如下:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
     <spring.version>5.0.4.RELEASE</spring.version>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
      <!--spring 依賴包-->
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <!--spring 依賴包  結束-->
      <!-- Spring 升級4+ 依賴的JSON包 -->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.9.5</version>
      </dependency>
      <dependency>
          <groupId>commons-collections</groupId>
          <artifactId>commons-collections</artifactId>
          <version>3.2.2</version>
      </dependency>
      <!-- /Spring 升級4+ 依賴的JSON包 -->
      <!--sfl4j+spring-->
      <dependency>
          <groupId>ch.qos.logback</groupId>
          <artifactId>logback-classic</artifactId>
          <version>1.2.3</version>
      </dependency>
      <dependency>
          <groupId>org.logback-extensions</groupId>
          <artifactId>logback-ext-spring</artifactId>
          <version>0.1.5</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>jcl-over-slf4j</artifactId>
          <version>1.7.25</version>
      </dependency>
      <!--sfl4j+spring-->
      <!--jedis依賴-->
      <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.9.0</version>
      </dependency>
      <!--web包依賴-->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
          <scope>compile</scope>
      </dependency>
      <dependency>
          <groupId>javax.servlet.jsp</groupId>
          <artifactId>jsp-api</artifactId>
          <version>2.2</version>
      </dependency>
      <!--spirng實現(xiàn)redissession存儲依賴包-->
      <dependency>
          <groupId>org.springframework.session</groupId>
          <artifactId>spring-session-data-redis</artifactId>
          <version>2.0.4.RELEASE</version>
      </dependency>
  </dependencies>

web.xml 配置文件內(nèi)容

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!--配置spring session 過濾器   session數(shù)據(jù)的保存應該是通過過濾器來起作用,具體如何起作用日后研究-->
  <filter>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>springSessionRepositoryFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <!-- 配置springmvc -->
  <servlet>
    <servlet-name>springMvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath*:mvc-demo.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

mvc-demo.xml 增加配置內(nèi)容、

  <!--spring注解配置-->
  <mvc:annotation-driven/>
    <context:component-scan base-package="com.test.session"/>
    <!--redis保存session信息配置類-->
    <bean id="redisHttpSessionConfiguration"
          class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration">
        <property name="maxInactiveIntervalInSeconds" value="60"/><!--session 信息過期時間-->

    </bean>
    <!--redis 鏈接信息配置-->
    <bean id="standlongConfig" class="org.springframework.data.redis.connection.RedisStandaloneConfiguration">
        <property name="port" value="6379"/>
        <property name="hostName" value="127.0.0.1"/>
        <property name="database" value="0"/>
    </bean>
      <!--jedis 連接工廠配置-->
    <bean id="jedisConnectionFactory" class="
    org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <constructor-arg name="standaloneConfig" ref="standlongConfig"/>
    </bean>

3、增加IndexController類,里邊兩個方法
index 方法返回字符串 index ,并且在session中添加屬性 name 為 zhangsan ,打印sessionid
getName 方法 返回session中的name屬性 .打印sessionid
如下:

@RestController
public class IndexController {

    @GetMapping ("/index")
    public String index(HttpServletRequest request){
        request.getSession().setAttribute("name","zhagnsan");
        System.out.println("-----index------------sessionid"+request.getSession().getId());
        return "index";
    }

    @GetMapping ("/getName")
    public String getName(HttpServletRequest request){
        System.out.println("----getName-------------sessionid======"+request.getSession().getId());

        return  (String)request.getSession().getAttribute("name");
    }
}

4、在本機啟動redis服務

在這里插入圖片描述

5、idea中配置兩個tomcat 端口不能相同 我們這里 tomcat8.5-1 使用 80端口 tomcat8.5-1使用8080 端口 如下:

在這里插入圖片描述

在這里插入圖片描述

兩個tomcat 都部署session_redis 工程如下 ,訪問路徑為 /

在這里插入圖片描述

6、啟動兩個tomcat 訪問 tomcat1 中的項目 http://localhost:80/index 在session中設置了name =zhangsan

在這里插入圖片描述

后臺打印sessionid為:

在這里插入圖片描述

直接訪問 tomcat2 中的 getName 方法 http://localhost:8080/getName 可以直接訪問到 session 并且后臺輸出sessionid和tomcat1中相同 。所以 session保存成功。

在這里插入圖片描述

由 于我們在配置文件中設置 session過期時間為 60秒 所以60秒后再次訪問 getName方法,發(fā)現(xiàn)訪問不到內(nèi)容了如下:

在這里插入圖片描述

7、通過redis 客戶端 我們可以看到 隨著session信息的保存以及過期 redis中鍵值的變化 ,如下:

在這里插入圖片描述

代碼下載地址: https://github.com/zhangxinmin/session-redis.git

到此這篇關于redis保存session信息的文章就介紹到這了,更多相關redis保存session信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 關于Redis數(shù)據(jù)持久化的概念介紹

    關于Redis數(shù)據(jù)持久化的概念介紹

    Redis是內(nèi)存數(shù)據(jù)庫,數(shù)據(jù)都是存儲在內(nèi)存中,需要定期將Redis中的數(shù)據(jù)以某種形式(或命數(shù)據(jù)令)從內(nèi)存保存到硬盤,今天給大家分享Redis數(shù)據(jù)的持久化的概念介紹,需要的朋友參考下吧
    2021-08-08
  • Redis內(nèi)存碎片處理實例詳解

    Redis內(nèi)存碎片處理實例詳解

    內(nèi)存碎片是redis服務中分配器分配存儲對象內(nèi)存的時產(chǎn)生的,下面這篇文章主要給大家介紹了關于Redis內(nèi)存碎片處理的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Redis+Lua腳本實現(xiàn)計數(shù)器接口防刷功能(升級版)

    Redis+Lua腳本實現(xiàn)計數(shù)器接口防刷功能(升級版)

    這篇文章主要介紹了Redis+Lua腳本實現(xiàn)計數(shù)器接口防刷功能,使用腳本使得set命令和expire命令一同達到Redis被執(zhí)行且不會被干擾,在很大程度上保證了原子操作,對Redis實現(xiàn)計數(shù)器接口防刷功能感興趣的朋友一起看看吧
    2022-02-02
  • Redis進行相關優(yōu)化詳解

    Redis進行相關優(yōu)化詳解

    這篇文章主要介紹了Redis進行相關優(yōu)化,Redis在項目中進行廣泛使用,那么在日常的開發(fā)過程中,我們在使用Redis的過程中需要注意那些呢?本文將從三個維度來講解如何進行Redis的優(yōu)化
    2022-08-08
  • Redis集群指定主從關系及動態(tài)增刪節(jié)點方式

    Redis集群指定主從關系及動態(tài)增刪節(jié)點方式

    這篇文章主要介紹了Redis集群指定主從關系及動態(tài)增刪節(jié)點方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Redis集群增加節(jié)點與刪除節(jié)點的方法詳解

    Redis集群增加節(jié)點與刪除節(jié)點的方法詳解

    這篇文章主要給大家介紹了關于Redis集群增加節(jié)點與刪除節(jié)點的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • Redis源碼解析:集群手動故障轉移、從節(jié)點遷移詳解

    Redis源碼解析:集群手動故障轉移、從節(jié)點遷移詳解

    這篇文章主要介紹了Redis源碼解析:集群手動故障轉移、從節(jié)點遷移的相關內(nèi)容,涉及通過集群定時器函數(shù)clusterCron實現(xiàn)從節(jié)點遷移等知識,具有一定參考價值,需要的朋友可以了解。
    2017-10-10
  • 從零搭建SpringBoot2.X整合Redis框架的詳細教程

    從零搭建SpringBoot2.X整合Redis框架的詳細教程

    這篇文章主要介紹了從零搭建SpringBoot2.X整合Redis框架的詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 使用Redis實現(xiàn)分布式鎖的代碼演示

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

    edis作為一個高性能的內(nèi)存數(shù)據(jù)庫,提供了多種機制來實現(xiàn)分布式鎖,本文將詳細介紹如何使用Redis實現(xiàn)分布式鎖,感興趣的朋友一起看看吧
    2025-04-04
  • 如何使用注解方式實現(xiàn)?Redis?分布式鎖

    如何使用注解方式實現(xiàn)?Redis?分布式鎖

    這篇文章主要介紹了如何使用注解方式實現(xiàn)Redis分布式鎖,文章圍繞主題展開詳細的內(nèi)容介紹,教大家如何優(yōu)雅的使用Redis分布式鎖,感興趣的小伙伴可以參考一下
    2022-07-07

最新評論

马尔康县| 方正县| 河北省| 博爱县| 鹤庆县| 比如县| 喀喇| 普兰店市| 孟村| 隆子县| 绥德县| 沁阳市| 绍兴县| 阳朔县| 麟游县| 张家港市| 永吉县| 霍城县| 如皋市| 广元市| 延庆县| 磐安县| 曲靖市| 衡东县| 夹江县| 饶阳县| 宿松县| 彝良县| 宜宾县| 田阳县| 襄垣县| 榕江县| 若羌县| 德令哈市| 永嘉县| 文昌市| 西宁市| 大石桥市| 宿迁市| 玛曲县| 肇庆市|