分享

spring boot简单开发系列——Redis的使用

 LZS2851 2018-03-03

 在昨天的文章中我们介绍了Spring boot Web开发的一些基本知识以及Thymeleaf 、Gradle 和WebJars的使用:spring boot简单开发系列——WEB开发示例,方便大家以后快速的使用spring boot开发WEB项目;本篇文章接着上篇内容继续为大家介绍spring boot的其它特性redis的使用。

我们都知道pring boot对常用的数据库支持,其实它对nosql 数据库也进行了封装自动化。下面就让我们一起来看一下。


redis介绍

Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lists, sets等,同时支持数据持久化。除此之外,Redis还提供一些类数据库的特性,比如事务,HA,主从库。可以说Redis兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文主要介绍Redis在Spring Boot中两个典型的应用场景。

1、首先我们需要在pom文件中引入 spring-boot-starter-redis

spring boot简单开发系列——Redis的使用

2、在配置文件中添加redis的相关配置

spring boot简单开发系列——Redis的使用

3,下面我们来写一个cache的配置类

spring boot简单开发系列——Redis的使用

4、好了,接下来就可以直接使用了,我们来写一个测试类,调用上面的代码

spring boot简单开发系列——Redis的使用

以上方法,我们是通过手动写配置类的方式来使用spring boot redis,如果想在查找数据库的时候自动使用缓存,我们就要使用注解的方式来实现了,看下面代码:自动根据方法生成缓存

spring boot简单开发系列——Redis的使用

在上面的注解中,其中value的值就是缓存到redis中的key。


共享Session-spring-session-data-redis

在分布式系统中,session共享其实有很多种的解决方案,其中托管到缓存中是最常用的方案之一。下面我们就来看看在spring boot中应该如何使用redis实现session共享。

1、在pom文件中引入依赖

spring boot简单开发系列——Redis的使用

2、使用注解的方式进行Session配置:

@Configuration

@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30)

publicclass SessionConfig {}

在注解中maxInactiveIntervalInSeconds: 用来设置Session失效时间,使用Redis Session之后,原Spring Boot的server.session.timeout属性将不再生效

好了,这样就配置好了,我们来测试一下

3、在测试方法中获取sessionid

spring boot简单开发系列——Redis的使用

登录redis 输入 keys '*sessions*'

t<spring:session:sessions:db031986-8ecc-48d6-b471-b137a3ed6bc1

t(spring:session:expirations:1582976480000

其中 1582976480000为失效时间,意思是这个时间后session失效,db031986-8ecc-48d6-b471-b137a3ed6bc1 为sessionId,登录http://localhost:8080/uid 发现会一致,就说明session 已经在redis里面进行有效的管理了。至于如何在两台或者多台中共享session,其实就是按照上面的步骤在另一个项目中再配置一次,启动项目后自动就进行session共享了。


结束语

好了,今天关于spring boot ridis的开发就先介绍到这里,大家有什么不懂得可以在下方给我留言;同时也希望大家收藏、转发,关注我的文章。下一篇我们将介绍spring boot 关于多数据源的一些使用知识。谢谢大家!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多