springboot+spring session+redis 实现分布式session共享_SD_54的博客-程序员宅基地_springboot分布式session自定义sessionid+redis

技术标签: session共享  spring session  SpringBoot  分布式  redis  

版本

springboot:各分布式项目版本最好一样。

redis:5.0.5,单机。

源码

https://gitee.com/gbkill/springsession.git

代码

pom.xml

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

application.properties

# Redis settings
spring.redis.database=0
spring.redis.host=192.168.100.11
spring.redis.port=6379
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=100
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0
# 连接超时时间(毫秒)
spring.redis.timeout=3000
# 存储方式
spring.session.store-type=redis

接口

package com.example.springsession.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.thymeleaf.util.StringUtils;

import javax.servlet.http.HttpServletRequest;

@RestController
@Slf4j
public class HelloCo {
    @RequestMapping("/hello")
    public String hello(HttpServletRequest request) {
        String userId = (String) request.getSession().getAttribute("userId");
        if (StringUtils.isEmpty(userId)) {
            log.info("用户session_id为空!");
            request.getSession().setAttribute("userId", "001_lxf");
        } else {
            log.info("用户session_id:" + userId);
        }

        return userId + "ssss   " + request.getSession().getId();
    }
}

测试

1. 打包项目

2. 启动两个项目

java -jar xxx --server.port=8081

java -jar xxx --server.port=8082

3. 先后访问

http://localhost:8081/hello

http://localhost:8082/hello

4. redis中存储

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_24484911/article/details/103477948

智能推荐

phpnow开启gzip压缩提高访问速度_狂奔乌龟的博客-程序员宅基地

Gzip 能够对你传输的网页进行压缩,虽然会增加一点点服务器的负担,但是换来的却是服务器流量大浮度减少,以及最最重要的,用户打开一个页面的速度大大提升,而且现在的服务器对开启Gzip的那点点负担,完全无压力。下面进入正题,使用phpnow 搭建的环境如何开启GZIP功能呢??很简单,只要两部:一、打开PHPnow 文件下的  php-5.2.12-Win32文件夹,找到  php-ap

Flex 3 CookBook 简体中文版 (已公布)_lixinye0123的博客-程序员宅基地

Flex 3 CookBook 简体中文Flex3 CookBook 翻译协作组  Flex 3 CookBook 简体中文是众多网友共同努力的成果,没有他们的辛勤劳动也就不会有此书,在此请允许我代表广大的Flex爱好者向所有自愿参与翻译的人员表示最衷心的感谢。由于此书采用多人协同翻译,每个人的水平又不尽相同,难免会出现或多或少的问题,在这里也请每位读者能怀着一份感激和宽容的心情阅读此书。如...

html文字加描边效果,【CSS 学习】CSS 文本描边效果_酌一杯暖阳同醉的博客-程序员宅基地

text-shadow 实现文本描边h1{text-shadow:-.025em -.025em 0 #444,.025em -.025em 0 #444,-.025em .025em 0 #444,.025em .025em 0 #444;}text-stroke 实现文本描边text-stroke 是 ext-stroke-width 和 text-stroke-color 的两个属性简...

光学efl_EFL投影式光固化生物3D打印四大亮点_祝峰的博客-程序员宅基地

投影式光固化生物3D打印分辨率高、打印速度快、可实现复杂结构精细打印,在水凝胶/细胞高精度批量制造上具有显著优势,适合于临床及动物实验中批量可重复需求,已逐渐成为主流生物3D打印方法。EFL团队持续攻关,推出了系列高精度投影式光固化生物3D打印机(EFL-BP-8600/8601)。l 点击文中出现的红色字体打开延伸阅读ll 欢迎在文后留言申请长期转载授权l▲EFL系列高精度投影...

使用Docker部署SpringBoot项目_情殇龙灵的博客-程序员宅基地

一、将jar包构建成docker镜像1.将jar包上传至linux目录2.创建Dockerfile文件[[email protected] jrkj-java]# vi Dockerfile文件内容如下:#JDK版本FROM java:8#挂载目录VOLUME /tmp#将jar包自定义镜像容器名称ADD jrkj-muck-0.0.1-SNAPSHOT.jar /jrkj-muck.jar#执行命令ENTRYPOINT ["java","-Djava.security.egd=fil

基于vue做一个禅道主页拖拽效果_weixin_33725515的博客-程序员宅基地

不bb先看效果源码地址bb两句最近在做一个基于vue的后台管理项目。平时项目进度统计就在上禅道上进行。so~ 然后领导就感觉这个拖拽效果还行,能不能加到咱们项目里面。 既然领导发话,那就开干。。所有技术:vue + vuedraggable拖动的实现基于 vuedraggable的插件开发。主页为两栏流式布局,每一个组件可以在上下拖动,也可以左右拖动。基本步骤布局这块布局为...

随便推点

关于Hyper-V快照研究_smeyou的博客-程序员宅基地_avhd101

虚拟机快照是虚拟机在特定时刻的状态、磁盘数据和配置的基于文件的快照。可以获取虚拟机的多个快照(甚至在其运行时)。然后,通过将相应快照应用于虚拟机可将虚拟机恢复为任何以前的状态我先说一下Hyper-V快照的创建过程1. 虚拟机暂停(对于用户来说是透明的,感觉不到)2. 为快照创建AVHD文件(快照以 .avhd 文件的形式存储在虚拟硬盘上的同一位置)3. 配置虚拟机

获取CPU频率_wengyb的博客-程序员宅基地

  // 获取CPU速度 UINT64 start, stop; UINT64 nCtr, nCtrStop;     _asm _emit 0x0F _asm _emit 0x31 _asm mov DWORD PTR start, eax _asm mov DWORD PTR [start+4], edx QueryPerformanceCounter( (LARGE_INTEGER *)&n

数据结构之线性表,这一篇就够了,吐血总结,建议收藏[email protected]玩转大数据的博客-程序员宅基地_数据结构线性表

线性表及其顺序存储结构痛定思痛,决定吐血总结一下线性表相关的知识,篇幅较多,字数较长,建议收藏学习!另外,请大家多多指教!又到了幼儿园放学的时间,今天天气很不错,光明顶幼儿园门口很多家长来接自己家的小宝贝,只见老师带着小朋友们,一个拉着另一个的衣服,依次从教室出来。而且我发现很有规律的是,每次他们的次序都是一样。比如宋远桥的儿子排在第5个,据说每次他都是在第5个,前面同样是那个小女孩,后面一直是那个小男孩。这点让我很奇怪,为什么一定要这样?后来从老师那里得知,为了保障小朋友的安全,避免漏掉小朋友,所

test editor_qhdxds的博客-程序员宅基地

namespace caffe {/** * @brief A wrapper around SyncedMemory holders serving as the basic *        computational unit through which Layer%s, Net%s, and Solver%s *        interact. * * T

Set Data Format in Excel Using POI 3.0(XSSF/HSSF)_caolaosanahnu的博客-程序员宅基地

http://www.roseindia.net/java/poi/setdataformat.shtmlIn this program we are setting data format in excel file using Java. POI version 3.0 provides a new feature for manipulating various file for

链路追踪(Tracing)的前世今生(上)_腾讯云开发者的博客-程序员宅基地_网络链路 trac

带着疑问看历史提起链路追踪,大部分人都会想起 Zipkin、Jaeger、Skywalking 这些已经比较成熟的链路追踪开源软件以及 Opentelemetry、OpenTracing、OpenCensus 这些开源标准。虽然实现各有差异,但是使用各种软件、标准和实现组合搭建出来的不同的链路追踪系统,却有着许多相类似的地方。例如这些链路追踪系统都需要在调用链路上传播元数据。他们对元数据内容的定义也大同小异,链路唯一的 trace id, 关联父链路的 parent id,标识自身的 span id .

推荐文章

热门文章

相关标签