热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot集成Redis操作方法

一、service层集成redis操作方法importjava.util.Collection;importjava.util.Map;importjava.util.con

一、service层集成redis操作方法

import java.util.Collection;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;public interface RedisServer {<T> void put(String key, T obj);<T> void put(String key, T obj, int timeout);<T> void put(String key, T obj, int timeout, TimeUnit unit);<T> T get(String key, Class<T> cls);<E,T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls);<T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier);<T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout);<E,T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls, Supplier<T> supplier);boolean exists(String key);void del(String key);boolean expire(String key, long timeout, TimeUnit unit);boolean expire(String key, long timeout);void put(String key, String value);void put(String key, String value, int timeout);void put(String key, String value, int timeout, TimeUnit unit);String get(String key);void putHash(String key, Map<Object, Object> m);Map<Object, Object> getHash(String key);
}

二、service层实现

import com.yh.business.framework.base.util.JsonUtils;
import com.yh.business.framework.common.redis.RedisServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;import java.util.Collection;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;&#64;Service("redisServer")
public class RedisServerImpl implements RedisServer {&#64;Autowiredprivate StringRedisTemplate redisTemplate;public <T> void put(String key, T obj) {redisTemplate.opsForValue().set(key, JsonUtils.toJson(obj));}public <T> void put(String key, T obj, int timeout) {put(key,obj,timeout,TimeUnit.MINUTES);}public <T> void put(String key, T obj, int timeout, TimeUnit unit) {redisTemplate.opsForValue().set(key, JsonUtils.toJson(obj),timeout,unit);}public <T> T get(String key, Class<T> cls) {return JsonUtils.fromJson(JsonUtils.toJson(redisTemplate.opsForValue().get(key)), cls);}public <E, T extends Collection<E>> T get(String key, Class<E> cls, Class<T> collectionCls) {return JsonUtils.fromJson(JsonUtils.toJson(redisTemplate.opsForValue().get(key)), cls, collectionCls);}public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier) {T t&#61;get(key,cls);if(null&#61;&#61;t){t&#61;supplier.get();if(null!&#61;t)put(key,t);}return t;}public <T> T putIfAbsent(String key, Class<T> cls, Supplier<T> supplier, int timeout) {T t&#61;get(key,cls);if(null&#61;&#61;t){t&#61;supplier.get();if(null!&#61;t)put(key,t,timeout);}return t;}public <E, T extends Collection<E>> T putIfAbsent(String key, Class<E> cls, Class<T> collectionCls,Supplier<T> supplier) {T t&#61;get(key,cls,collectionCls);if(null&#61;&#61;t || t.isEmpty()){t&#61;supplier.get();if(null!&#61;t && t.size()>0)put(key,t);}return t;}public boolean exists(String key) {return redisTemplate.hasKey(key);}public void del(String key) {redisTemplate.delete(key);}public boolean expire(String key, long timeout, TimeUnit unit) {return redisTemplate.expire(key, timeout, unit);}public boolean expire(String key, long timeout) {return redisTemplate.expire(key, timeout, TimeUnit.MINUTES);}public void put(String key, String value) {redisTemplate.opsForValue().set(key, value);}public void put(String key, String value, int timeout) {put(key,value,timeout,TimeUnit.MINUTES);}public void put(String key, String value, int timeout, TimeUnit unit) {redisTemplate.opsForValue().set(key, value, timeout, unit);}public String get(String key) {return (String) redisTemplate.opsForValue().get(key);}public void putHash(String key, Map<Object,Object> m) {redisTemplate.opsForHash().putAll(key, m);}public Map<Object, Object> getHash(String key) {try{return redisTemplate.opsForHash().entries(key);}catch(Exception e){return null;}}
}

三、测试
1、用put方法直接添加键值对&#xff0c;get方法去值&#xff0c;输出“hello redis!”。
2、del方法删除键值对&#xff0c;删除完后输出为 null。

在这里插入图片描述


推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • importjava.util.ArrayList;publicclassPageIndex{privateintpageSize;每页要显示的行privateintpageNum ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
author-avatar
lydia芸小窝的天使
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有