当前位置: 首页 > news >正文

Redis工具类(缓存操作,Object转换成JSON数据)

依赖spring-data-redis-2.4.1.jar

@Component
@Data
public class RedisUtils {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;@Resource(name = "stringRedisTemplate")private ValueOperations<String, String> valueOperations;/*** 默认过期时长,单位:秒*/public final static long DEFAULT_EXPIRE = 60 * 60 * 24;/*** 不设置过期时长*/public final static long NOT_EXPIRE = -1;/*** 插入缓存默认时间** @param key   键* @param value 值* @author zmr*/public void set(String key, Object value) {set(key, value, DEFAULT_EXPIRE);}/*** 插入缓存** @param key    键* @param value  值* @param expire 过期时间(s)* @author zmr*/public void set(String key, Object value, long expire) {valueOperations.set(key, toJson(value));redisTemplate.expire(key, expire, TimeUnit.SECONDS);}/*** 返回字符串结果** @param key 键* @return* @author zmr*/public String get(String key) {return valueOperations.get(key);}/*** 返回指定类型结果** @param key   键* @param clazz 类型class* @return* @author zmr*/public <T> T get(String key, Class<T> clazz) {String value = valueOperations.get(key);return value == null ? null : fromJson(value, clazz);}/*** 删除缓存** @param key 键* @author zmr*/public void delete(String key) {redisTemplate.delete(key);}/*** 获得缓存的基本对象列表** @param pattern 字符串前缀* @return 对象列表*/public Set<String> keys(String pattern) {return redisTemplate.keys(pattern);}/*** Object转成JSON数据*/private String toJson(Object object) {if (object instanceof Integer || object instanceof Long || object instanceof Float || object instanceof Double|| object instanceof Boolean || object instanceof String) {return String.valueOf(object);}return JSON.toJSONString(object);}/*** JSON数据,转成Object*/private <T> T fromJson(String json, Class<T> clazz) {return JSON.parseObject(json, clazz);}
http://www.lryc.cn/news/138795.html

相关文章:

  • Linux 下 Java Socket 编程报 java.net.Exception:Permission denied (权限不足)
  • IDEA项目实践——VUE介绍与案例分析
  • vue-canvas基本使用和注意事项-动画闪烁效果-自适应适配不同分辨率问题
  • Jmeter 如何才能做好接口测试?
  • 电商平台京东平台获得京东商品描述API接口演示案例
  • 《算法竞赛·快冲300题》每日一题:“单位转换”
  • R语言13-R语言中的数据导入导出和批量导入
  • 【Java】对象与类
  • 视频尺寸缩小,一键批量剪辑,轻松制作精简版
  • leetcode做题笔记94. 二叉树的中序遍历
  • UWB高精度人员定位系统源码,微服务+java+ spring boot+ vue+ mysql技术开发
  • 企业党建杂志企业党建杂志社企业党建编辑部2023年第4期目录
  • ChatGPT + Flutter快速开发多端聊天机器人App
  • ubuntu18.04复现yolo v8之最终章,realsenseD435i+yolo v8完美运行
  • Python统计中文词频的四种方法
  • sql server 快速安装
  • 机器学习之损失函数
  • nacos适配SqlServer、Oracle
  • 力扣:74. 搜索二维矩阵(Python3)
  • CPU、MCU、MPU、SOC、SOCPC、概念解释之在嵌入式领域常听到的名词含义
  • 每日两题 111二叉树的最小深度 112路径总和(递归)
  • 实训笔记8.24
  • Linux下的系统编程——系统调用(五)
  • 动物体外受精手术VR模拟仿真培训系统保证学生及标本的安全
  • 微信小程序|步骤条
  • 如何才能设计出“好的”测试用例?
  • DirectExchange直连交换机
  • Shell 编程:探索 Shell 的基本概念与用法
  • 【Git分支操作---讲解二】
  • vue2+qrcodejs2+clipboard——实现二维码展示+下载+复制到剪切板——基础积累