Spring-SESSION+Redis 实现Session共享
2021-01-29 23:16
标签:请求 连接超时 数据库 关系 ros nec text let class 关于session共享的方式有多种: (1)通过nginx的ip_hash,根据ip将请求分配到对应的服务器 (2)基于关系型数据库存储 (3)基于cookie存储 (4)服务器内置的session复制域 (5)基于nosql(memcache、redis都可以) 常用的就是1和5,下面研究第5种方式,基于nosql(redis)存储session。 下边基于springboot进行session共享配置: 1、pom.xml中引入Redis相关的依赖 2、配置 application.properties 3、设置Redis配置,并开启session缓存 4、编写一个Controller并进行测试 启动两个服务进行测试,端口分别为8000 ,8001,两台服务均可获取到session 测试结果: 浏览器中输入http://localhost:8000/sessionInsert?key=name&value=中国 创建session 访问8001端口,获取session Spring-SESSION+Redis 实现Session共享 标签:请求 连接超时 数据库 关系 ros nec text let class 原文地址:https://www.cnblogs.com/pinghengxing/p/12822276.htmlSpring-SESSION+Redis 实现Session共享
dependency>
groupId>org.springframework.bootgroupId>
artifactId>spring-boot-starter-data-redisartifactId>
dependency>
dependency>
groupId>redis.clientsgroupId>
artifactId>jedisartifactId>
dependency>
dependency>
groupId>org.springframework.sessiongroupId>
artifactId>spring-session-data-redisartifactId>
dependency>
#配置spring_session共享redis
#Redis
spring.redis.host=140.143.XX.XX
## Redis服务器连接端口
spring.redis.port=6379
## 连接超时时间(毫秒)
spring.redis.timeout=300ms
## Redis服务器连接密码(默认为空)
spring.redis.password=ww
@EnableRedisHttpSession
public class RedisSessionConfig {
@Value("${spring.redis.host}")
private String redisHost;
@Value("${spring.redis.port}")
private int redisPort;
@Value("${spring.redis.password}")
private String redisPassword;
/**
* 配置连接工厂
* @return
*/
@Bean
public RedisConnectionFactory redisConnectionFactory() {
RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(redisHost, redisPort);
redisStandaloneConfiguration.setPassword(RedisPassword.of(redisPassword));
return new JedisConnectionFactory(redisStandaloneConfiguration);
}
}
@RestController
public class RedisSessionTestController {
@RequestMapping(value = "/sessionInsert")
public String insert(String key,String value, HttpSession session){
session.setAttribute(key,value);
return "success";
}
@RequestMapping(value = "/sessionGet")
public String delete(String key,HttpSession session){
String value = (String) session.getAttribute(key);
return key+":"+ value;
}
}
下一篇:PageRank算法
文章标题:Spring-SESSION+Redis 实现Session共享
文章链接:http://soscw.com/essay/48895.html