中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Redis中實現一個分布式Session管理機制

發布時間:2021-01-19 15:26:02 來源:億速云 閱讀:291 作者:Leah 欄目:開發技術

怎么在Redis中實現一個分布式Session管理機制?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一. Redis實現分布式Session管理

1. Memcached管理機制

怎么在Redis中實現一個分布式Session管理機制

2. Redis管理機制

1.redis的session管理是利用spring提供的session管理解決方案,將一個應用session交給Redis存儲,整個應用中所有session的請求都會去redis中獲取對應的session數據。

怎么在Redis中實現一個分布式Session管理機制

二. SpringBoot項目開發Session管理

1. 引入依賴pop.xml

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

    <!--spring-data-redis session 管理-->
    <dependency>
      <groupId>org.springframework.session</groupId>
      <artifactId>spring-session-data-redis</artifactId>
    </dependency>

    <!--排除內嵌tomcat-->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>

2. 開發Session管理配置類(使用注解)

怎么在Redis中實現一個分布式Session管理機制

@Configuration
@EnableRedisHttpSession //將整個應用中使用session的數據全部交給redis處理
public class RedisSessionManager {

}

3. Controller層設計

package com.xizi.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("test")
public class TestController {

  //使用redis 的session管理 注意:當session中數據發生變化時必須將session中變化的數據同步到redis中
  @RequestMapping("test")
  public void test(HttpServletRequest request, HttpServletResponse response) throws IOException {
    List<String> list = (List<String>) request.getSession().getAttribute("list");
    if(list==null){
      list = new ArrayList<>();
    }
    list.add("xxxx");
    request.getSession().setAttribute("list",list);//每次session變化都要同步session

    response.getWriter().println("size: "+list.size());
    response.getWriter().println("sessionid: "+request.getSession().getId());
  }

  @RequestMapping("logout")
  public void logout(HttpServletRequest request){
    //退出登錄
    request.getSession().invalidate();//失效
  }
}

4.打包測試

怎么在Redis中實現一個分布式Session管理機制

三 . Nginx+Tomcat集群+Redis測試

1.Nginx相關配置

怎么在Redis中實現一個分布式Session管理機制
怎么在Redis中實現一個分布式Session管理機制
怎么在Redis中實現一個分布式Session管理機制

2.Tomcat集群

怎么在Redis中實現一個分布式Session管理機制

//這是tom4 后面的兩個端口號依次+1
//關閉端口
<Server port="8003" shutdown="SHUTDOWN">

//連接端口
<Connector port="8989" protocol="HTTP/1.1"
        connectionTimeout="20000"
        redirectPort="8443" />

<Connector port="10010" protocol="AJP/1.3" redirectPort="8443" />

怎么在Redis中實現一個分布式Session管理機制

改變初始頁面index.jsp

怎么在Redis中實現一個分布式Session管理機制

3.Redis集群

已經開啟了,不會的去看我前面的Redis集群搭建博客

怎么在Redis中實現一個分布式Session管理機制
怎么在Redis中實現一個分布式Session管理機制

4. 測試

上傳war包到三個Tomcat的Webapps目錄下

怎么在Redis中實現一個分布式Session管理機制

直接訪問Nginx頁面,反向代理了Tomcat集群

怎么在Redis中實現一個分布式Session管理機制
怎么在Redis中實現一個分布式Session管理機制
怎么在Redis中實現一個分布式Session管理機制

關于怎么在Redis中實現一個分布式Session管理機制問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

分宜县| 清新县| 循化| 长丰县| 江口县| 攀枝花市| 剑阁县| 南华县| 罗田县| 乌拉特前旗| 舟曲县| 应城市| 嫩江县| 南郑县| 辉县市| 甘德县| 穆棱市| 云龙县| 精河县| 松溪县| 清流县| 浦县| 临沧市| 银川市| 嘉荫县| 庄河市| 佳木斯市| 天等县| 青岛市| 淅川县| 海伦市| 潞城市| 宣汉县| 贵港市| 嘉定区| 杨浦区| 天柱县| 遂平县| 合作市| 义马市| 资讯|