python使用redis实现session_Spring Boot框架如何通过Redis实现Session共享

首先了解一下Spring Boot,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

Spring Boot特点包含如下:

1. 创建独立的Spring应用程序

2. 嵌入的Tomcat,无需部署WAR文件

3. 简化Maven配置

4. 自动配置Spring

5. 提供生产就绪型功能,如指标,健康检查和外部配置

6. 绝对没有代码生成和对XML没有要求配置

下面讲述一下如何通过Spring Boot框架实现Redis Session共享,首先准备一个Redis服务本地启动即可。

步骤一引入相关依赖jar包,在maven的pom.xml文件中增加如下依赖:

org.springframework.session

spring-session

1.2.2.RELEASE

org.springframework.boot

spring-boot-starter-redis

org.springframework.session

spring-session-data-redis

1.2.2.RELEASE

pom

步骤二使用Spring Boot中@EnableRedisHttpSession注解开启Spring session支持,新建RedisSessionConfig.java类,具体代码如下:@Configuration

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)

public class RedisSessionConfig {

@Bean

public JedisConnectionFactory connectionFactory() {

return new JedisConnectionFactory();

}

}

分析:@EnableRedisHttpSession注解其中maxInactiveIntervalInSeconds参数是设置Session失效时间,开启注解后spring会生成一个新的拦截器,用于实现Session共享操作,配置的@Bean注解让Spring根据配置文件连接Redis服务。

步骤三配置Redis服务,在项目中使用redis.properties文件,增加如下配置信息,用于连接Redis服务:spring.redis.database=0

spring.redis.host=127.0.0.1

spring.redis.password=123456

spring.redis.port=6379

spring.redis.timeout=0

host是redis服务地址,password是密码一般默认密码为空,port是端口号,database数据库索引默认为0,timeout是连接超时时间(毫秒),其他参数省略。

步骤四测试方法获取sessionid值,具体代码如下:@RequestMapping("/uid")

public String uid(HttpSession session) {

UUID uid = (UUID) session.getAttribute("uid");

if (uid == null) {

uid = UUID.randomUUID();

}

session.setAttribute("uid", uid);

return session.getId();

}

登录redis服务输入命令“keys '*sessions*'”,结果如下:spring:session:sessions:57de45f-c91b-5dd0-98c1-b28e1b8a1355

spring:session:expirations:1472976480000

其中“1472976480000”为失效时间含义是超过这个时间就会被销毁,“57de45f-c91b-5dd0-98c1-b28e1b8a1355”为sessionid值,登录访问http://localhost:8080/uid地址会发现是结果相同,说明session已经在redis服务中被有效的存储。

有的人会问如何在两台或多台服务上实现共享session,其实原理很简单参考上述步骤在另外一个项目中配置一次,启动后就会实现session共享。

后续内容持续更新,如果对技术感兴趣想成为全栈开发工程师或者想从事互联网开发的朋友,欢迎大家关注头条号“路人宅”,也就是小编本人,感谢大家的支持。后期不定期更新Java、Python、Redis缓存、Spring源码、各类框架、NoSQL非关系型数据库、Mysql、Oracle、各类框架,大数据云计算Storm、Hadoop、MapReduce、elasticsearch以及操作系统、单点登录统一认证、分布式框架、集群等等,闻道有先有大家共勉吧!

大家努力学习,共同进步。关注微信号“优哉游哉”,免费领取视频资料,互联网的道路上,从此不迷路!O(∩_∩)O~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值