当前位置: 首页 > news >正文

将Spring Session存储到Redis中实现持久化

文章目录

  • Session持久化
    • 1. 添加依赖
    • 2. 配置redis连接信息
    • 3. 存储和读取session从Redis

Session持久化

1. 添加依赖

在项目中添加session依赖和redis依赖,如下所示:

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.session</groupId><artifactId>spring-session-data-redis</artifactId></dependency>

2. 配置redis连接信息

# redis连接配置信息
spring.redis.host=124.221.76.124
# 不写默认wei6379,数据库为0
# spring.redis.database=15
spring.redis.port=6379# 配置session连接信息
spring.session.store-type=redis
server.servlet.session.timeout=1800
spring.session.redis.flush-mode=on_save
spring.session.redis.namespace=spring:session

3. 存储和读取session从Redis


package com.example.sp_redis.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;/*** 实现session持久化* @author zq* @date 2023-07-26 14:37*/@RestController
public class UserController {private static final String SESS_USER_KEY = "SESS_USER_KEY";@RequestMapping("/login")public String login(HttpSession httpSession) {//存入sessionhttpSession.setAttribute(SESS_USER_KEY, "wangwu");return "Session set success.";}@RequestMapping("/getuser")public String getUser(HttpServletRequest request) {String user = "NULL";HttpSession session = request.getSession(false);if (session != null) {//从redis中获取sessionObject userObj = session.getAttribute(SESS_USER_KEY);if (userObj != null) {user = userObj.toString();}}return user;}
}

我们访问localhost:8080/login 将session存入redis
在这里插入图片描述

接着访问localhost:8080/login可以读取到缓存中的数据

在这里插入图片描述
接着我们可以在redis客户端看到存入到session

在这里插入图片描述

相关文章:

将Spring Session存储到Redis中实现持久化

文章目录 Session持久化1. 添加依赖2. 配置redis连接信息3. 存储和读取session从Redis Session持久化 1. 添加依赖 在项目中添加session依赖和redis依赖&#xff0c;如下所示&#xff1a; <dependency><groupId>org.springframework.boot</groupId><art…...

Git工作中常用命令

模拟一个git完整命令流程 有一个名为 example.txt 的文本文件 Hello, this is some text.1、做一些修改并查看文件的差异&#xff1a; # 修改 example.txt 文件 echo "Hello, this is some updated text." > example.txt查看文件的差异 git diffgit diff 命令…...

【电路效应】信号处理和通信系统模型中的模拟电路效应研究(SimulinkMatlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码、Simulink仿真实现 &#x1f4a5;1 概述 在信号处理和通信系统模型中&#xff0c;模拟电路效应研究是指考虑到实际电路的特性对信号进行建模和分析的过程。模拟电路效应…...

Spring 的元注解

一、元注解介绍 1.1.源码引入 1.2.元注解介绍 从上面的图片可知&#xff0c;Spring 有四个【负责注解其他注解】的元注解&#xff0c;分别是&#xff1a; Target&#xff1a;标识该注解可以用于标注哪些程序元素&#xff0c;比如类、方法、字段等。 Retention&#xff1a;标…...

【前缀和】238. 除自身以外数组的乘积

238. 除自身以外数组的乘积 解题思路 前缀与后缀的思路对于给定索引i&#xff0c;将它左边的所有数字乘积乘以右边所有数字的乘积初始化两个数组L R计算L[i] L[i - 1] * nums[i - 1] 也就是左侧所有数字的乘积计算R[i] R[i 1] * nums[i 1] 也就是右侧所有数字的成绩计算L…...

【Java中间件】RocketMQ

RocketMQ 一、MQ概述 Message Queue&#xff0c;是一种提供消息队列服务的中间件。提供了消息生产、存储、消费全过程API的软件系统。 MQ的作用 限流削峰&#xff1a;当用户发送超量请求时&#xff0c;将请求暂存&#xff0c;以便后期慢慢处理。如果不使用MQ暂存直接请求到…...

Megatron-LM、NVIDIA NeMo、MegaMolBART 、model_optim_rng.pt 文件是什么?

本文涉及以下几个概念&#xff0c;分别是&#xff1a; Megatron和Megatron-LM-v1.1.5-3D_parallelism NVIDIA NeMo Megatron和Megatron-LM-v1.1.5-3D_parallelism是什么&#xff1f; Megatron是由NVIDIA开发的一种用于训练大规模语言模型的开源框架。它旨在提供高效的分布式…...

2023年信息系统项目管理师如何报名?老司机告诉你

信息系统项目管理师是全国计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;简称软考&#xff09;项目之一&#xff0c;是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试&#xff0c;既属于国家职业资格考试&#xff0c;又是职称资…...

linux ubuntu系统 命令备忘

一、安装软件包的命令 1、验证安装包是否安装 dpkg -s <软件包名> 2、从软件源服务器获取最新的软件信息并缓存到本地 apt update 3、从本地仓库中对比系统中所有已安装的软件&#xff0c;如果有新版本的话则进行升级 apt upgrade 4、列出本地仓库中所有的软件包名…...

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…...

微信机器人搭建详细教程

确保已安装Python和pip。 在D盘上创建名为wxbot的文件夹&#xff0c;并将你的Python机器人项目文件放在这个目录中。 在D盘的wxbot文件夹中打开命令行工具&#xff0c;并创建一个新的Python虚拟环境&#xff08;可选&#xff09;&#xff1a; python -m venv venv激活虚拟环…...

opengauss安装

opengauss安装 系统环境 Redhat版本&#xff1a;redhat7.6 虚拟机ip&#xff1a;192.168.5.144 Gauss版本&#xff1a;openGauss-5.0.0-CentOS-64bit-all.tar.gz 企业版 一&#xff0e;准备软硬件环境 1.1 安装依赖包 yum -y install bzip2 python3 libaio-devel flex bis…...

什么是SVM算法?硬间隔和软间隔的分类问题

SVM全称是supported vector machine(支持向量机)&#xff0c;即寻找到一个超平面使样本分成两类&#xff0c;并且间隔最大。 SVM能够执行线性或⾮线性分类、回归&#xff0c;甚至是异常值检测任务。它是机器学习领域最受欢迎的模型之一。SVM特别适用于中小型复杂数据集的分类。…...

Normalization(BN and LN) in NN

Batch Normalization 称为批标准化。批是指一批数据&#xff0c;通常为 mini-batch&#xff1b;标准化是处理后的数据服从 N ( 0 , 1 ) N(0,1) N(0,1) 的正态分布。在训练过程中&#xff0c;数据需要经过多层的网络&#xff0c;如果数据在前向传播的过程中&#xff0c;尺度发…...

opencv-22 图像几何变换01-缩放-cv2.resize()(图像增强,图像变形,图像拼接)

什么是几何变换&#xff1f; 几何变换是计算机图形学中的一种图像处理技术&#xff0c;用于对图像进行空间上的变换&#xff0c;而不改变图像的内容。这些变换可以通过对图像中的像素位置进行调整来实现。 常见的几何变换包括&#xff1a; 平移&#xff08;Translation&#x…...

python机器学习(五)逻辑回归、决策边界、代价函数、梯度下降法实现线性和非线性逻辑回归

线性回归所解决的问题是把数据集的特征传入到模型中&#xff0c;预测一个值使得误差最小&#xff0c;预测值无限接近于真实值。比如把房子的其他特征传入到模型中&#xff0c;预测出房价&#xff0c; 房价是一系列连续的数值&#xff0c;线性回归解决的是有监督的学习。有很多场…...

聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法

聊聊Linq中.AsEnumerable(), AsQueryable() ,.ToList(),的区别和用法 当使用LINQ查询数据时&#xff0c;我们常常会面临选择使用.AsEnumerable(), .AsQueryable(), 和 .ToList()方法的情况。这些方法在使用时有不同的效果和影响&#xff0c;需要根据具体场景来选择合适的方法。…...

【机器学习】机器学习中的“本体”概念

一、说明 在机器学习中&#xff0c;本体越来越多地用于提供基于相似性分析和场景知识的 ML 模型。 在传统的基于标签的定义中&#xff0c;对象往往是孤立的&#xff0c;可扩展性差&#xff0c;存在重复的可能性&#xff0c;对象之间的关系无法体现。在基于本体的定义中&#xf…...

ChatGPT是否能够进行对话中的参考和指代解析?

ChatGPT在对话中的参考和指代解析方面有一定的潜力&#xff0c;但需要针对具体任务和上下文进行定制和优化。参考和指代解析是指理解对话中的代词、名词短语等表达方式所指代的具体对象或信息。在对话中&#xff0c;参考和指代解析对于理解上下文、保持对话连贯性和生成准确回复…...

网红项目AutoGPT源码内幕及综合案例实战(三)

AutoGPT on LangChain PromptGenerator等源码解析 本节阅读AutoGPT 的prompt_generator.py源代码,其中定义了一个PromptGenerator类和一个get_prompt函数,用于生成一个提示词信息。PromptGenerator类提供了添加约束、命令、资源和性能评估等内容的方法,_generate_numbered_l…...

LN2266 超小型 低电压启动 PWM 控制 升压 DC/DC 电压调整器

■ 产品概述 LN2266 是一款微型、高效率、升压 DC/DC 调整器。电路由电流模 PWM 控制环路&#xff0c;误差放大器&#xff0c;斜波产生电路&#xff0c;比较器和一个功率开关等模块组成。该芯片可在较宽负载范围内高效稳定的工作。低于 1V 的启动电压&#xff0c;可以使用 1-4节…...

2026 前端面试必杀技:全新版|不重复、大白话、直接背

2026 前端面试必杀技&#xff1a;全新版&#xff5c;不重复、大白话、直接背一、2026 面试新趋势&#xff08;先搞懂&#xff0c;少走弯路&#xff09; 不再死背八股&#xff0c;原理 场景 方案才是高分答案AI 工作流、全栈、性能、安全四大新重点必考框架问得更细&#xff1…...

OpenClaw+千问3.5-27B学习助手:自动整理笔记与生成思维导图

OpenClaw千问3.5-27B学习助手&#xff1a;自动整理笔记与生成思维导图 1. 为什么需要AI学习助手&#xff1f; 去年准备技术认证考试时&#xff0c;我发现自己陷入了"资料沼泽"——收集了87个PDF、42小时视频课程和无数网页书签&#xff0c;但真正消化吸收的内容不到…...

24小时稳定运行方案:OpenClaw+Qwen3-32B进程守护配置

24小时稳定运行方案&#xff1a;OpenClawQwen3-32B进程守护配置 1. 为什么需要进程守护&#xff1f; 去年12月&#xff0c;我尝试用OpenClaw自动化处理每日技术简报时&#xff0c;遭遇了一个尴尬场景——凌晨3点任务突然中断&#xff0c;导致次日早晨的会议材料缺失关键数据。…...

嵌入式系统中命令模式的应用与优化

1. 嵌入式系统中的误操作救赎之道在嵌入式开发中&#xff0c;参数配置误操作就像厨房里的盐罐打翻——一瞬间的失误可能导致整锅菜报废。上周我就遇到一个真实案例&#xff1a;某工业设备因为工程师误触"恢复出厂设置"&#xff0c;导致产线上30台设备参数全部重置&am…...

​Problem - 2148F - Codeforces​[字符串后缀排序]

Problem - 2148F - Codeforces 题意很简单 我们可以随意防止字符串 按照从上到下 如果最后一层某个位置没有字符串 那么上面的字符串就会掉下来到最后一层 求字典序最小的最下层的字符串 首先 最朴素的思想 我们会找出当前最小长度的字符串 长度k 然后截取所有字符串的…...

V821 DISP 显示驱动流程分析

文章目录1、前言2、环境介绍3、大致流程4、程序阅读5、总结1、前言 在全志 V821 下调试 RGB 屏幕时&#xff0c;因为一直创建不出 fb 节点&#xff0c;这里记录一下当时阅读显示驱动框架的过程。仅供参考。 2、环境介绍 sdk&#xff1a;V821 tina sdk v1.3 3、大致流程 初…...

2026年专业深度测评:超强增压花洒套装排名前五权威榜单

一、开篇&#xff1a;行业趋势与测评声明随着消费者对居家生活品质要求的精细化提升&#xff0c;以及高层住宅、老旧小区水压不稳问题的普遍存在&#xff0c;具备稳定出水与舒适沐浴体验的超强增压花洒套装已成为市场核心需求。为帮助消费者在众多产品中做出科学决策&#xff0…...

Lab4-Lab: traps MIT6.1810操作系统工程【持续更新】

kernel/trap.c当中是处理所有中断的代码。 RISC-V assembly (简单) ​ 在这个lab当中&#xff0c;要求我们阅读一些汇编代码&#xff0c;并且了解c语言的某些语句对应的汇编是怎样的&#xff0c;同时了解不同寄存器的不同职责&#xff08;例如ra寄存器是存放返回地址的寄存器…...

LibreCAD:开源2D CAD解决方案的价值与实践指南

LibreCAD&#xff1a;开源2D CAD解决方案的价值与实践指南 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C17. It can read DXF/DWG files and can write DXF/PDF/SVG files. It supports point/line/circle/ellipse/parabola/spline pri…...