如何在SpringBoot项目使用Redis存储session

  • 一、什么是Redis?
  • 二、此次案例使用Redis做什么?
  • 三、阿里云服务器安装Redis
  • 四、SpringBoot项目添加yml配置
  • 五、写一个配置类
  • OVER

一、什么是Redis?

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

二、此次案例使用Redis做什么?

在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器独占一个session对象(默认情况下)。服务器会获取保存在session中的信息进行验证等。
由于实际应用场景,连接数量庞大,需要多台服务器。为了实现均衡负载,可能每次访问的不是同一个服务器。此时为了统一session存放,就需要Redis帮忙管理session。

三、阿里云服务器安装Redis

这里找到了一个别人写的教程
centOs安装和配置Redis

四、SpringBoot项目添加yml配置

spring:cache:type: REDISredis:host: 你的ipport: 你的端口password: 你的密码database: 0

五、写一个配置类

新建一个RedisConfig类。类的内容如下,这里我配置了默认过期时间为999999秒,设置redis的key为“cacheName:xxxx”形式,更改value值的序列化为json格式。
现在我们可以愉快的在项目中使用redis了。springboot帮我们针对缓存的操作做了封装。我们可以直接使用注解来方便的使用。

package com.kid.config;import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.CacheKeyPrefix;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;import java.time.Duration;/*** @ClassName RedisConfig* @Description TODO* @Autor T_Antry* @Date 2020/10/21 13:10* @Version 1.0*/
@Configuration
public class RedisConfig {/*** 默认超时时间*/private static final long DEFAULT_TTL = 999999L;@Beanpublic CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {//初始化一个RedisCacheWriterRedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);//自定义key前缀CacheKeyPrefix cacheKeyPrefix = new CacheKeyPrefix() {@Overridepublic String compute(String cacheName) {return cacheName+":";}};//设置CacheManager的值序列化方式为json序列化RedisSerializer<Object> jsonSerializer = new GenericJackson2JsonRedisSerializer();RedisSerializationContext.SerializationPair<Object> pair = RedisSerializationContext.SerializationPair.fromSerializer(jsonSerializer);//生成RedisCacheConfiguration配置RedisCacheConfiguration defaultCacheConfig = RedisCacheConfiguration.defaultCacheConfig().computePrefixWith(cacheKeyPrefix).serializeValuesWith(pair);//设置默认超过期时间是30秒defaultCacheConfig.entryTtl(Duration.ofSeconds(DEFAULT_TTL));//初始化RedisCacheManagerreturn new RedisCacheManager(redisCacheWriter, defaultCacheConfig);}}

在启动类上增加@EnableCaching注解,没有增加这个注解的话,缓存将不会生效。

package com.kid;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cache.annotation.EnableCaching;// 作用:扫描该包下的所有java类 (扫描器标签)
// 作用:自动加载配置类,我们springboot的配置很多都写成类的形式(fsatjson)
// 作用:到时候打包的时候识别成springboot框架
@SpringBootApplication
@MapperScan("com.kid.mapper")
@ServletComponentScan
@EnableCaching
public class Boot {public static void main(String[] args) {SpringApplication.run(Boot.class, args);}
}

OVER

Springboot+Redis+阿里云服务器 Redis是什么?如何配置Redis?怎样配置Redis?如何按装Redis?相关推荐

  1. 阿里云服务器学生机搭建及宝塔面板环境配置

    一.进入阿里云学生计划网站 https://developer.aliyun.com/adc/student/ 完成认证和测试获得免费的服务器,之后进行购买 二.对服务器进行配置 三.配置安全组 四. ...

  2. 阿里云服务器apache/2.4.27(Unix)配置二级域名 ProxyPassMatch

    文章由 流星蝴蝶没有剑 提供 轻量应用服务器如何通过修改apache配置文件实现非https的访问多域名到不同子目录程序?ProxyPassMatch的使用 阿里服务器配置子域名.二级域名:不同项目对 ...

  3. 阿里云服务器 搭建单体redis 以及踩坑

    在搭建阿里云服务器的过程中,踩坑很多,特写此文: 简介 Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序 ...

  4. SpringBoot整合阿里云短信服务详细过程(保证初学者也能实现)

    前言 网上关于实操性的文章普遍大部分都记录不全,要么只记录重点部分,对于刚学习的小伙伴来说看起来是比较困难的 所以,基于这一点. 该文章会详细介绍使用SpringBoot整合阿里云短信服务的每一步过程 ...

  5. [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql

    从2014年开始,作者主要写了三个Python系列文章,分别是基础知识.网络爬虫和数据分析. Python基础知识系列:Pythonj基础知识学习与提升 Python网络爬虫系列:Python爬虫之S ...

  6. mysql上传到阿里云服务器地址_从0部署Web项目到阿里云服务器上

    前言 本篇文章的主要内容正如标题所言,这个过程说简单也还是有很多细节需要注意的,说难其实也挺简单的,还是希望我们大家都能勤动手去体会其中的内容,经历本身就可以使人进步.话不多说,让我们开始吧. 正文 ...

  7. 阿里云服务器搭建Minecraft我的世界配置选择

    阿里云服务器搭建Minecraft我的世界CPU内存配置怎么选择?公网带宽和系统盘选择多少合适?一般20人以内玩家.1.12版本的大型整合包.100个以内个轻量mod,2核4G配置就够用了,公网带宽选 ...

  8. 购买阿里云服务器完整流程及注意事项(图文教程)

    作为国内最大的云服务器商,阿里云自2015财年首次披露云计算营收后,由当年12.71亿元营收增长到现在营收400亿元,六年间增长31倍,年复合增长率高达99%.这充分说明阿里云服务器已经是目前国内上云 ...

  9. 阿里云服务器2核4G5M带宽网站并发支持多少人同时访问?

    2核4G云服务器5M带宽搭建网站支持多少人同时在线?小说网站以文字为准,网页相对于图片.视频这种网站小很多,从公网带宽角度考虑可以大约支持20人左右同时访问,如果网站接入CDN和对象存储OSS可以支持 ...

最新文章

  1. react 组件的属性
  2. python 计算时间重叠_Python基于时间信息(即时、间隔)计算项目之间的相似性...
  3. C语言求二叉树的垂直总和(附完整源码)
  4. 解决android中出现的无法加载library的问题
  5. synology smb_用于在Synology NAS上测试Spring Boot Web应用程序的JUnit模拟文件
  6. PC端中文机械设备企业网页模板
  7. 使用 Gradle 实现一套代码开发多个应用
  8. java8+array+join_Fork/Join 框架详解(基于 JDK 8)
  9. flutter json转对象_在 Flutter 使用 Redux 来共享状态和管理单一数据
  10. Deep Convolutional Network Cascade for Facial Point Detection论文算法解析
  11. 成长中不可或缺的是信仰(转载)
  12. 十大免费网络工具 瞬间提升业务效率
  13. 整天说“B超”,你知道“B”指的是什么吗?
  14. 计算机网络——FTP网络服务器
  15. KafkaController机制(六):Zookeeper Listener之TopicDeletionManager与DeleteTopicsListener
  16. C语言之动态内存开辟之malloc
  17. 在线学习python
  18. Linux执行yum不显示时间图形,Linux命令yum
  19. RT-Thread源码-4-线程函数剖析
  20. Linux中反引号(` `)、单引号(‘ ‘)、双引号(“ “)、花括号({ })的解释

热门文章

  1. 数据结构——Floyd算法(寻找最短路径)
  2. 损耗角正切储能模量_设置材料的损耗角正切
  3. HTML和JavaScript的简单使用
  4. 开源流程引擎该如何选择flowable还是camunda?
  5. ASP.NET Core 中的 wwwroot 文件夹
  6. Vant Weapp小程序蹲坑之使用card组件显示价格
  7. CSS权重与优先级-详细分析
  8. 动态规划——最长上升子序列模型
  9. 学习第五篇:【SpringBoot-Labs】Spring Boot 调试环境、热部署入门、Lombok、MapStruct入门
  10. 面试题-基础-网格移动路径算法