亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么在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

鸡泽县| 胶州市| 宜黄县| 泾阳县| 子长县| 得荣县| 桂平市| 盐城市| 瑞丽市| 穆棱市| 邵东县| 景宁| 南昌市| 临夏县| 茂名市| 台南市| 赣州市| 淮滨县| 巧家县| 拉孜县| 湟源县| 高陵县| 门源| 平和县| 保靖县| 高密市| 隆德县| 陇川县| 三台县| 株洲县| 江阴市| 沽源县| 贞丰县| 于都县| 固原市| 清远市| 峡江县| 山阳县| 新建县| 双峰县| 砚山县|