SpringBoot 使用Redis缓存

1. 添加依赖

<!-- redis依赖包 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2. Redis数据库连接配置文件

spring:redis:database: 0host: localhostport: 6379

3. RedisUtils工具类

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;/*** @Author: zxg* @Date: Created in 2021/09/05 14:53* @Description:Redis工具类*/
@Component
@Slf4j
public class RedisUtils {@Autowiredprivate RedisTemplate<String,String> redisTemplate;/*** 读取缓存* @param key key* @return*/public String get(final String key){return redisTemplate.opsForValue().get(key);}/*** 写入缓存,键值对不过期* @param key key* @param value value* @return*/public boolean set(final String key,final String value){boolean result = false;try{redisTemplate.opsForValue().set(key,value);result = true;}catch (Exception e){log.info("redis set key-value ({}:{}) fail, error: [{}]",key,value,e.getMessage(),e);}return result;}/*** 写入缓存,设置超时时间* @param key key* @param value value* @param timeout 超时时间* @param timeUnit 时间单位* @return*/public boolean set(final String key, final String value, long timeout, TimeUnit timeUnit){boolean result = false;try{redisTemplate.opsForValue().set(key,value,timeout,timeUnit);result = true;}catch (Exception e){log.info("redis set key-value ({}:{}) fail, error: [{}]",key,value,e.getMessage(),e);}return result;}/*** 更新缓存,通过key来设置vlaue,返回旧value* @param key* @param value* @return*/public String getAndSet(final String key, final String value){String oldValue = null;try{oldValue = redisTemplate.opsForValue().getAndSet(key,value);}catch (Exception e){log.info("redis set key-value ({}:{}) fail, error: [{}]",key,value,e.getMessage(),e);}return oldValue;}/*** 删除缓存* @param key* @return*/public boolean delete(final String key) {boolean result = false;try {redisTemplate.delete(key);result = true;} catch (Exception e) {e.printStackTrace();}return result;}
}

4. 单元测试类

import com.study.redis.utils.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;import java.util.concurrent.TimeUnit;/*** @Author: * @Date: Created in 2021/09/05 15:08* @Description: Redis测试类*/
@SpringBootTest
@Slf4j
@DisplayName("Redis 操作测试")
public class RedisUtilsTest {@Autowiredprivate RedisUtils redisUtils;@Test@DisplayName("reids get")void get(){String key = "a";String value = redisUtils.get(key);log.info("value: {}",value);}@Test@DisplayName("redis set")void set(){String key = "a";String value = "123";boolean result = redisUtils.set(key, value);if(result){log.info("redis set key-value ({}:{}) success!",key,value);}}@Test@DisplayName("redis getAndSet")void getAndSet(){String key = "a";String value = "456";String result = redisUtils.getAndSet(key, value);if(result!=null){log.info("key {} old vlaue : {}" ,key,result);}}@Test@DisplayName("redis set and timeout")void setAndTimeOut(){String key = "b";String value = "123";long timeout = 60L;TimeUnit timeUnit = TimeUnit.SECONDS;boolean result = redisUtils.set(key, value,timeout,timeUnit);if(result){log.info("redis set key-value ({}:{}) success!",key,value);}}@Test@DisplayName("redis delete key")void delete(){String key = "a";boolean result = redisUtils.delete(key);if(result){log.info("redis delete key : {} success!",key);}}
}

5. 其他操作

其他操作查看ValueOperations

SpringBoot 使用Redis缓存相关推荐

  1. SpringBoot与Redis缓存

    SpringBoot与Redis缓存: 准备 在Docker安装Redis 连接成功 对于Redis不熟悉的同学可以在本站搜索Redis的文章阅读. 整合Redis 在pom文件中加入 12345 & ...

  2. SpringBoot集成Redis缓存

    SpringBoot集成Redis缓存 前言 本系列文章将简单的学习SpringCloud微服务相关知识,其实也是因为时间的原因,一直拖到现在,遂打算趁着假期,决定记录下来. 从天气预报微服务系统的单 ...

  3. Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)

    源代码 https://gitee.com/fakerlove/Shiro Shiro+SpringBoot+Mysql+Redis(缓存) 1. 添加依赖 <?xml version=&quo ...

  4. SpringBoot整合Redis缓存

    SpringBoot整合Redis缓存 一.缓存概念知识 1.是什么缓存 2.缓存的优缺点 3.为什么使用缓存 二.Redis概念知识 1.Redis简介 2.为什么用Redis作为缓存 3.Redi ...

  5. Shiro框架学习笔记、整合Springboot、redis缓存

    本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中 ...

  6. SpringBoot整合redis缓存(一)

    一. 准备工作 1.Linux系统 2.安装redis(也可以安装docker,然后再docker中装redis,本文章就直接用Linux安装redis做演示)redis下载地址:http://dow ...

  7. SpringBoot 开启Redis缓存

    文章目录 Redis缓存 主要步骤 具体实践 整体目录结构 pom.xml添加依赖 yml文件里配置Redis集群 编写RedisConfig配置序列化及缓存配置,添加缓存注解 编写业务Control ...

  8. redis 依赖_springboot|springboot集成redis缓存

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...

  9. SpringBoot整合Redis缓存中间件

    首先在pom.xml中引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifac ...

最新文章

  1. 12cR2 RAC+RAC+ADG ORA-16854
  2. opensuse11.4 apache2 403 错误.
  3. c++ char数组和char*
  4. “记录”是给世界做积极贡献的一种方式
  5. 第12讲:Ajax 的原理和解析
  6. 5 useMemouseCallback
  7. luogu P3295 [SCOI2016]萌萌哒
  8. 什么是正则表达式?有什么用?常用的字符有哪些?
  9. 3DMAX 2018 界面简介
  10. VUE源码解析(持续更新)
  11. 阿里云 mysql 导出数据库_阿里云服务器如何操作导出数据库
  12. 【印刷行业】RICOH MH5422和MH5442喷头(G6+)
  13. 计算机二级java答题演示_全国计算机二级考试高级Office考试操作题
  14. Maven压缩资源导致文件损坏的解决
  15. 中国移动光猫GM 219-S获取管理员密码
  16. 主动变被动9个例句_【语法课堂】全面了解被动语态的特殊用法考点总结
  17. 怎样设置计算机usb端口,USB端口被占用了,怎样将其他USB设备添加到我的计算机?...
  18. android显示图片部分区域,Android编程实现只显示图片一部分的方法
  19. bilibili账号申诉中心_b站(bilibili)账号忘记密码了怎么办?如何用邮箱找回?找回得多久?...
  20. 2021杭电多校补题(5)

热门文章

  1. 冒险岛发假信息给服务器,大家不要群假冒险岛
  2. pdf转换成jpg格式的在线转换方法分享
  3. 国内航班最快明年可实现上网打电话
  4. 【译言网】史上最优美最含蓄最富诗意最具文学性的编程语言:莎士比亚程序设计语言...
  5. requests爬虫实践之安居客二手房屋数据(python实现)
  6. Windows 也有包管理工具?
  7. 百度Apollo6.0中Overlap.proto每个字段的含义
  8. vc++ 读书笔记(摘抄)
  9. GPU(图形处理器) ARCHITECTURE的变迁史
  10. 编写指数函数 c语言,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...