Spring全家桶系列-SpringBoot入门Redis

//本文作者:cuifuan

//本文将收录到菜单栏:《Spring全家桶》专栏中

首先,Redis是什么?

Redis是一个开源的,基于内存的键值数据存储,用作数据库,缓存和消息代理。在实现方面,Key-Value存储代表NoSQL空间中最大和最老的成员之一。Redis支持数据结构,如字符串,散列,列表,集和带范围查询的有序集。

在spring data redis的框架,可以很容易地编写,通过提供一个抽象的数据存储使用Redis的键值存储的Spring应用程序。 非关系型数据库,基于内存,存取数据的速度不是关系型数据库所能比拟的 redis是键值对(key-value)的数据库

有5中主要数据类型:

字符串类型 string

散列类型 hash

列表类型 list

集合类型 set

有序集合类型 zset

redis缓存为啥速度快

这么说吧,别人问你什么是“redis”,如果你知道,你可以直接吧啦吧啦一大堆,其实这个时候你的大脑就类似redis缓存,别人问的“redis”就是key,你说出来的结果就是value,而你如果不知道,你就去上网查,然后再告诉别人,这就类似于查询数据库了,你查了再告诉别人当然慢了!

你把脑袋里的东西写进笔记就类似redis持久化保存了;

你过了两个月把这玩意忘了,就是redis的定期删除了;

准备工作

项目工具环境:

IDEA 2018.2

Gradle 4+

JDK1.8以上

redis服务器

设置Redis服务器

redis下载地址:https://redis.io/download

如果你的电脑是Mac:

然后运行redis服务器

初始化项目

现在去Spring开始界面初始化一个项目

Gradle 依赖管理

让我们在build.gradle中为我们正在构建的示例应用程序声明必要的依赖项

开始使用

凭借着SpringBoot的开箱即用的特点,集成Redis也不例外

redisTemplate.opsForValue();//操作字符串

redisTemplate.opsForHash();//操作hash

redisTemplate.opsForList();//操作list

redisTemplate.opsForSet();//操作set

redisTemplate.opsForZSet();//操作有序set

在Spring的测试类中开始使用:

执行过后发现存在redis中的数据:

是乱的,是因为在set后redis会序列化key和value,所以我们要在config中重写一下redisTemplate

src/main/java/com/example/springbootredisdemo/config/RedisConfig.java

再去执行一下刚刚的方法

经过自定义的序列化之后可以了,没有乱码了

opsForList()添加操作

opsForList()删除操作

通过源码看这里有三个参数:

key 对应的是redis中存的key值

count 正数就是从左边开始删除 负数是从右面 例如-1就从右删除第一个值为value的,0代表删除全部值为value的

value 就是需要从list移除的值

opsForSet()添加操作

利用了set值的不可重复

结果

符合了Set集合的无序和不可重复性

opsForSet()的删除操作

这个删除操作就比较容易了,直接根据set的key值,后面参数写其需要删除的value就可以

opsForHash()操作

结果

测试类SpringbootRedisDemoApplicationTests

src/test/java/com/example/springbootredisdemo/SpringbootRedisDemoApplicationTests.java

小知识

方法名字前加ABCD...是为了让方法有执行顺序,根据测试方法名字搞定执行顺序,在方法上加注解 @FixMethodOrder(MethodSorters.NAME_ASCENDING)

日志注解@Slf4j是为了让日志书写更方便

多个参数可以用多个{},总之,喜欢哪个用哪个,谢谢!

码云代码地址

https://gitee.com/cuifuan/SpringBoot

↓↓↓

看完本文有收获?请转发分享给更多人

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181204B0A31Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券