java开发之Redis实现分布式Session管理
Redis实现分布式Session管理
Memcached管理机制
文章图片
Redis管理机制
redis的session管理是利用spring提java培训供的session管理解决方案,将一个应用session交给Redis存储,整个应用中所有session的请求都会去redis中获取对应的session数据。
文章图片
SpringBoot项目开发Session管理
引入依赖pop.xml
org.springframework.boot
spring-boot-starter-data-redis
org.springframework.session
spring-session-data-redis
org.springframework.boot
spring-boot-starter-tomcat
provided
开发Session管理配置类(使用注解)
文章图片
@Configuration
@EnableRedisHttpSession //将整个应用中使用session的数据全部交给redis处理
public class RedisSessionManager {
}
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 list = (List) request.getSession().getAttribute("list");
if(list==null){
list = new ArrayList<>();
}
list.add("xxxx");
request.getSession().setAttribute("list",list);
//每次session变化都要同步sessionresponse.getWriter().println("size: "+list.size());
response.getWriter().println("sessionid: "+request.getSession().getId());
}@RequestMapping("logout")
public void logout(HttpServletRequest request){
//退出登录
request.getSession().invalidate();
//失效
}
}
打包测试
文章图片
Nginx+Tomcat集群+Redis测试
Nginx相关配置
文章图片
文章图片
Tomcat集群
文章图片
//这是tom4 后面的两个端口号依次+1
//关闭端口
//连接端口
connectionTimeout="20000"
redirectPort="8443" />
文章图片
【java开发之Redis实现分布式Session管理】改变初始页面index.jsp
文章图片
3.Redis集群
已经开启了,不会的去看我前面的Redis集群搭建博客
文章图片
测试
上传war包到三个Tomcat的Webapps目录下
文章图片
直接访问Nginx页面,反向代理了Tomcat集群
文章图片
文章图片
文章图片
GiF演示一波
文章图片
作者:戏子zzzz
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 开学第一天(下)
- 20170612时间和注意力开销记录
- 深入理解Go之generate
- 开花店的前景怎么样()
- 眉头开了
- 上班后阅读开始变成一件奢侈的事
- 小影写在2018九月开学季
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 事件代理