41-redis实现分布式session管理

redis的session管理是利用spring提供的session管理解决方案,将一个应用session交给redis存储,整个应用中所有session的请求都会去redis中获取对应的session数据
/
/
/
/
1、memcache和redis实现session共享的区别
(1)memcache
【memcache和tomcat的兼容性不是很好】
【memcache是基于与tomcat做的全局session管理,不需要对部署在tomcat上的应用做相应的处理】

(2)redis
【redis是基于应用做的session管理】

/
/
/
/
2、开发session管理

(1)导入依赖

<!--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>

(2)编写配置

(3)编写我们的RedisSessionManager配置类

(4)编写controller进行测试

(5)访问这个路径后,页面可以正常显示,并且redis中也进行了存储。



创建一个session,一共有三个key,因为我们使用的是集群,所以存储在了不同的服务

(6)我们初衷是希望刷新页面后,size可以不断增加,但是并不可以
原因:我们取出来redis中的list后,java虚拟机会创建一个list,然后我们进行了add操作,是对java虚拟机中的list进行了add,但是并没有同步更新到我们的redis中,每次从redis中取到的list还是最原始的那个list
【所以,如果我们希望java中数据改变后redis数据也跟着改变,我们需要在java中数据改变后将改变数据同步更新到redis中即可】

【注意:session中数据改变后,要将改变的session同步到redis中】

posted @ 2021-12-08 11:23  不是孩子了  阅读(446)  评论(0)    收藏  举报