session-缓存-分布式会话session共享、多节点部署session共享解决方案
来源:互联网 发布:淘宝客服绩效信息 编辑:程序博客网 时间:2024/06/06 00:55
基于redis的session共享解决方案:
依赖pom包 spring-seesion-data-redis,实际该包只是将spring-data-redis 、spring-session、jedis(redis-clients) 做了个集合管理,如果项目已引入spring-data-redis、jedis,则直接引入spring-session即可。
可以为session共享所使用的redis单独做配置,即使用redis特定的实例。如果不用特定的连接,则直接在类加@EnableRedisHttpSession 即可
注意:一定要合理配置好redis的连接配置参数,否则会报can note get a jedis from pool.
import org.apache.commons.lang.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;import redis.clients.jedis.JedisPoolConfig;/** * 开启session redis存储机制 * Created by YeCongZhi on 2017/8/4. */@Configuration@EnableRedisHttpSession//maxInactiveIntervalInSeconds 默认是1800秒过期,这里测试修改为60秒//@EnableRedisHttpSession(maxInactiveIntervalInSeconds=60)public class RedisSessionConfig { Logger logger = LoggerFactory.getLogger(getClass()); @Value("${spring.redis.host:}") private String host; @Value("${spring.redis.port:6379}") private String port; @Value("${spring.redis.timeout:3000}") private String timeout; @Value("${spring.redis.password:}") private String password; @Value("${spring.redis.default.expir:10}") private String defaultExpir; @Value("${redis.maxTotal:-1}")//最大连接数 private int maxTotal; @Value("${redis.maxIdle:20}")//最大空闲连接数 private int maxIdle; @Value("${redis.minIdle:10}")//最小空闲连接数 private int minIdle; @Value("${redis.maxWaitMillis:-1}")//获取连接时的最大等待毫秒数 private Long maxWaitMillis; @Value("${redis.testOnBorrow:false}")//在获取连接的时候检查有效性 private boolean testOnBorrow; @Value("${redis.MinEvictableIdleTimeMillis:60000}")//多长时间后回收空闲连接 private Long MinEvictableIdleTimeMillis; @Bean public JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(host); factory.setPort(Integer.parseInt(port)); factory.setTimeout(Integer.parseInt(timeout)); //设置连接超时时间 factory.setPassword(password); JedisPoolConfig poolCofig = poolCofig( maxTotal,maxIdle,minIdle, maxWaitMillis,MinEvictableIdleTimeMillis,testOnBorrow); factory.setPoolConfig(poolCofig); /**初始化连接pool*/ factory.afterPropertiesSet(); return factory; } /**redis配置*/ public JedisPoolConfig poolCofig( int maxTotal,int maxIdle, int minIdle, long maxWaitMillis,long MinEvictableIdleTimeMillis, boolean testOnBorrow) { JedisPoolConfig poolCofig = new JedisPoolConfig(); poolCofig.setMaxTotal(maxTotal); poolCofig.setMaxIdle(maxIdle); poolCofig.setMinIdle(minIdle); poolCofig.setMaxWaitMillis(maxWaitMillis); poolCofig.setMinEvictableIdleTimeMillis(MinEvictableIdleTimeMillis); poolCofig.setTestOnBorrow(testOnBorrow); return poolCofig; }}
阅读全文
0 0
- session-缓存-分布式会话session共享、多节点部署session共享解决方案
- 分布式Session共享解决方案
- session共享会话
- 【Session】多服务器节点间session共享
- session分布式共享
- 分布式session共享
- 分布式应用共享session
- 分布式session共享
- 分布式Session共享方案
- 分布式Tomcat session共享
- shiro分布式session共享
- 多服务器session共享解决方案
- Session共享的解决方案
- Session共享的解决方案
- session共享解决方案
- Session共享解决方案
- Session 共享解决方案
- Session共享解决方案
- python的冗余参数
- 1%、2小时、1个亿:贾跃亭在香港的日与夜
- Linux下MySQL5.6的修改字符集编码为UTF8(解决中文乱码问题,亲测可用)
- 动态添加OracleParameter 参数
- 递归与动态规划---数字字符串转换为字母组合的种数
- session-缓存-分布式会话session共享、多节点部署session共享解决方案
- 强密码和弱密码并没有什么区别?NIST密码安全标准更新:不再建议密码要求混合大写字母、字符和数字
- 修改svn文件的存取权限
- 轻松看懂机器学习十大常用算法
- 关于python的main函数
- Maven 搭建多模块企业级项目
- 做一个绝世高手
- openstack 环境部署
- 从淘宝P5到天猫总监_她的阿里十年发生了什么?想知道是谁吗?