Redis可以用作分布式共享session的解决方案

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.context.annotation.Configuration;

import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

import org.springframework.session.web.http.DefaultCookieSerializer;

import org.springframework.session.web.http.CookieSerializer;

@Configuration

@EnableRedisHttpSession

public class RedisSessionConfig {

@Autowired
public void configureSession(CookieSerializer cookieSerializer) {
    // 自定义cookie的相关配置
    cookieSerializer.setCookieName("SESSION_ID");
    cookieSerializer.setCookiePath("/");
    cookieSerializer.setDomainNamePattern("^.+?\\.(\\w+\\.[a-z]+)$");
}

@Bean
public CookieSerializer cookieSerializer() {
    return new DefaultCookieSerializer();
}

}

上述代码通过@EnableRedisHttpSession注解启用Redis作为session存储,并自定义了cookie的相关配置。可以根据需要进行修改。

在项目中使用Redis作为session存储后,可以通过注入HttpSession对象来访问和操作session中的数据。以下是一个简单的示例

import javax.servlet.http.HttpSession;

@RestController

public class SessionController {

@Autowired
private HttpSession session;

@GetMapping("/setSession")
public void setSession() {
    session.setAttribute("key", "value");
}

@GetMapping("/getSession")
public String getSession() {
    String value = (String) session.getAttribute("key");
    return value != null ? value : "Session not found";
}

}

在上述示例中,setSession方法用于设置session的值,getSession方法用于获取session的值。

需要注意的是,为了使session能够跨域名共享,需要设置cookie的domain属性为公共域名。在上述示例中,通过设置DefaultCookieSerializer的domainNamePattern属性,可以将cookie的domain属性设置为公共域名。请根据实际情况进行调整。

相关推荐
小刘鸭!30 分钟前
Hbase的特点、特性
大数据·数据库·hbase
凡人的AI工具箱33 分钟前
每天40分玩转Django:Django表单集
开发语言·数据库·后端·python·缓存·django
不能只会打代码35 分钟前
Java并发编程框架之综合案例—— 分布式日志分析系统(七)
java·开发语言·分布式·java并发框架
奔跑草-36 分钟前
【数据库】SQL应该如何针对数据倾斜问题进行优化
数据库·后端·sql·ubuntu
Elastic 中国社区官方博客42 分钟前
如何通过 Kafka 将数据导入 Elasticsearch
大数据·数据库·分布式·elasticsearch·搜索引擎·kafka·全文检索
P.H. Infinity1 小时前
【Redis】配置序列化器
数据库·redis·缓存
猛男技术控1 小时前
Milvus矢量数据库 麒麟v10安装
数据库·milvus
别致的影分身1 小时前
MySQL 常用程序介绍
数据库·mysql
马剑威(威哥爱编程)2 小时前
分布式Python计算服务MaxFrame使用心得
开发语言·分布式·python·阿里云
HD2436088362 小时前
【mysql】id主键列乱了之后,重新排序(可根据日期顺序)
数据库·sql·mysql