SpringBoot 使用Redis缓存
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缓存相关推荐
- SpringBoot与Redis缓存
SpringBoot与Redis缓存: 准备 在Docker安装Redis 连接成功 对于Redis不熟悉的同学可以在本站搜索Redis的文章阅读. 整合Redis 在pom文件中加入 12345 & ...
- SpringBoot集成Redis缓存
SpringBoot集成Redis缓存 前言 本系列文章将简单的学习SpringCloud微服务相关知识,其实也是因为时间的原因,一直拖到现在,遂打算趁着假期,决定记录下来. 从天气预报微服务系统的单 ...
- Shiro教程_2 Shiro+SpringBoot+Mysql+Redis(缓存)
源代码 https://gitee.com/fakerlove/Shiro Shiro+SpringBoot+Mysql+Redis(缓存) 1. 添加依赖 <?xml version=&quo ...
- SpringBoot整合Redis缓存
SpringBoot整合Redis缓存 一.缓存概念知识 1.是什么缓存 2.缓存的优缺点 3.为什么使用缓存 二.Redis概念知识 1.Redis简介 2.为什么用Redis作为缓存 3.Redi ...
- Shiro框架学习笔记、整合Springboot、redis缓存
本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中 ...
- SpringBoot整合redis缓存(一)
一. 准备工作 1.Linux系统 2.安装redis(也可以安装docker,然后再docker中装redis,本文章就直接用Linux安装redis做演示)redis下载地址:http://dow ...
- SpringBoot 开启Redis缓存
文章目录 Redis缓存 主要步骤 具体实践 整体目录结构 pom.xml添加依赖 yml文件里配置Redis集群 编写RedisConfig配置序列化及缓存配置,添加缓存注解 编写业务Control ...
- redis 依赖_springboot|springboot集成redis缓存
javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~https: ...
- SpringBoot整合Redis缓存中间件
首先在pom.xml中引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifac ...
最新文章
- 12cR2 RAC+RAC+ADG ORA-16854
- opensuse11.4 apache2 403 错误.
- c++ char数组和char*
- “记录”是给世界做积极贡献的一种方式
- 第12讲:Ajax 的原理和解析
- 5 useMemouseCallback
- luogu P3295 [SCOI2016]萌萌哒
- 什么是正则表达式?有什么用?常用的字符有哪些?
- 3DMAX 2018 界面简介
- VUE源码解析(持续更新)
- 阿里云 mysql 导出数据库_阿里云服务器如何操作导出数据库
- 【印刷行业】RICOH MH5422和MH5442喷头(G6+)
- 计算机二级java答题演示_全国计算机二级考试高级Office考试操作题
- Maven压缩资源导致文件损坏的解决
- 中国移动光猫GM 219-S获取管理员密码
- 主动变被动9个例句_【语法课堂】全面了解被动语态的特殊用法考点总结
- 怎样设置计算机usb端口,USB端口被占用了,怎样将其他USB设备添加到我的计算机?...
- android显示图片部分区域,Android编程实现只显示图片一部分的方法
- bilibili账号申诉中心_b站(bilibili)账号忘记密码了怎么办?如何用邮箱找回?找回得多久?...
- 2021杭电多校补题(5)
热门文章
- 冒险岛发假信息给服务器,大家不要群假冒险岛
- pdf转换成jpg格式的在线转换方法分享
- 国内航班最快明年可实现上网打电话
- 【译言网】史上最优美最含蓄最富诗意最具文学性的编程语言:莎士比亚程序设计语言...
- requests爬虫实践之安居客二手房屋数据(python实现)
- Windows 也有包管理工具?
- 百度Apollo6.0中Overlap.proto每个字段的含义
- vc++ 读书笔记(摘抄)
- GPU(图形处理器) ARCHITECTURE的变迁史
- 编写指数函数 c语言,C语言:利用函数指针编写一个用矩形法求定积分的通用函数,包括正弦,余弦和指数函数,...