集成spring session很简单,只需几行代码即可。

@Configuration
@EnableRedisHttpSession
public class SessionConfig { @Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
@Value("${redis.database}")
private Integer database; @Bean
public RedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(host);
factory.setDatabase(database);
factory.setPort(port);
factory.setTimeout(10000);
return factory;
}
}

  但请注意,使用EnableRedisHttpSession的默认配置,有可能造成cpu占用过高。这是因为默认使用的是SimpleAsyncTaskExecutor,导致监听redis keyEvent事件时频繁创建线程,造成性能消耗。因此解决方案是定义线程池即可。

@Bean
public ThreadPoolTaskExecutor springSessionRedisTaskExecutor() {
ThreadPoolTaskExecutor springSessionRedisTaskExecutor = new ThreadPoolTaskExecutor();
springSessionRedisTaskExecutor.setCorePoolSize(8);
springSessionRedisTaskExecutor.setMaxPoolSize(16);
springSessionRedisTaskExecutor.setKeepAliveSeconds(10);
springSessionRedisTaskExecutor.setQueueCapacity(1000);
springSessionRedisTaskExecutor.setThreadNamePrefix("SESSION_TASK_EXEC");
return springSessionRedisTaskExecutor;
}

  有关spring session的实现原因可参考文章:https://www.cnkirito.moe/spring-session-4/。

欢迎关注个人公众号

最新文章

  1. Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)
  2. Delphi XE的firemonkey获取当前文件所在路径的方法
  3. script "text/template"
  4. 小白日记44:kali渗透测试之Web渗透-SqlMap自动注入(二)-sqlmap参数详解REQUEST
  5. gcc链接程序时出现undefined reference to""错误
  6. Unity连接本地数据库sqlite
  7. 第11章 享元模式(Flyweight Pattern)
  8. Sass与Compress实战:第七章
  9. Java反射机制能够获取的信息,与应用
  10. 认识Java(2)
  11. MIDle生命周期详解,以及工作原理
  12. JarvisOJ Misc webshell分析
  13. 转)Ubuntu安装teamviewer
  14. redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型
  15. iOS 拨打电话三种方式
  16. format格式
  17. flexible.js结合rem实现移动端自适应布局
  18. HDU 4739 Zhuge Liang's Mines (2013杭州网络赛1002题)
  19. System.loadLibrary()的使用方法汇总
  20. jquery操作select取值赋值与设置选中[转]

热门文章

  1. HAVING 搜索条件在进行分组操作之后应用
  2. 洛谷 P1432 倒水问题
  3. WAMP 3.1.0 APACHE 2.4.27 从外网访问
  4. NoSql数据库Redis系列(5)——Redis主从复制
  5. PyCharm虚拟环(Project Interpreter)手动安装第三方包图解教程
  6. 【转】git branch 命令查看分支、删除远程分支、本地分支
  7. Mxnet:以全连接层为例子自定义新的操作(层)
  8. Servlet 添加 Cookie 返回 500 的问题
  9. Linux_CentOS 内存、cpu、进程、端口、硬盘管理
  10. Python高级笔记(十)闭包