Springboot整合redis的某些理解-程序员宅基地

技术标签: springboot  

在RedisTemplate中提供了几个常用的接口方法的使用,分别是:

private ValueOperations<K, V> valueOps;
private ListOperations<K, V> listOps;
private SetOperations<K, V> setOps;
private ZSetOperations<K, V> zSetOps;
  
  
   
  • 1
  • 2
  • 3
  • 4

本文主要讲解几个接口的使用。

RedisOperations

这个接口的实现类就是RedisTemplate,提供了一些对Redis命令的一些操作。

ValueOperations

这个接口的实现类为:DefaultValueOperations.
在RedisTemplate中,已经提供了一个工厂方法:opsForValue()。这个方法会返回一个默认的操作类。另外,我们可以直接通过注解@Resource(name = “redisTemplate”)来进行注入。

//声明
@Resource(name = "redisTemplate")
private RedisTemplate<String, String> template;

//调用方法
template.opsForValue().set("key","value");
  
  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
//RedisTemplate还提供了对应的*OperationsEditor,用来通过RedisTemplate直接注入对应的Operation。
//声明
@Resource(name = "redisTemplate")
private ValueOperations<String, Object> vOps;

//调用方法
vOps.set("key","value");
  
  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

除了可以通过template注入ValueOperations,还可以注入 上面的其他几种operations以及HashOperations

DefaultValueOperations提供了所有Redis字符串类型的操作api。比如set,get,incr等等。使用这些方法,可以方便的直接存储任意的java类型,而不需要自己去将存储的东西序列化以及反序列化

ListOperations,SetOperations,ZSetOperations除了提供的操作API不一样以外,其他的调用方法与DefaultValueOperations一致。

HashOperations接口说明

这个接口并没有定义成员变量,但是直接提供了方法。

public <HK, HV> HashOperations<K, HK, HV> opsForHash() {
    return new DefaultHashOperations<K, HK, HV>(this);
}
  
  
   
  • 1
  • 2
  • 3

具体的调用如下:
方法1

//注入HashOperations对象
@Resource(name = "redisTemplate")
private HashOperations<String,String,Object> hashOps;

//具体调用
Map<String,String> map = new HashMap<String, String>();
map.put("value","code");
map.put("key","keyValue");
hashOps.putAll("hashOps",map);
  
  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

方法2

//注入RedisTemplate对象
@Resource(name = "redisTemplate")
private RedisTemplate<String, String> template;


//具体调用
Map<String,String> map = new HashMap<String, String>();
map.put("value","code");
map.put("key","keyValue");
template.opsForHash().putAll("hashOps",map);
  
  
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Spring的@EnableCaching注解 => 此为使用spring的注解方式时
@EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了。

当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。如果找到了,就会自动创建一个代理拦截方法调用,使用缓存的bean执行处理。

这里需要注意数据的序列化.

整合代码链接 : https://download.csdn.net/download/qq_34531925/10412347

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34531925/article/details/80284211

智能推荐

Product SYS/BIOS v6.73.1.01 is not currently installed and no compatible version is available_sys/bios v6.73.0-程序员宅基地

文章浏览阅读5.6k次,点赞3次,收藏9次。CCS导入工程时出现这个错误,解决方法如下。CCS:project->properties->找到SDK安装目录应用并关闭_sys/bios v6.73.0

Docker_the push refers to repository-程序员宅基地

文章浏览阅读829次。目录Docker简介一、Docker常用命令1.1 帮助命令1.2 镜像命令1.3 容器命令二、Docker容器数据卷(持久化)2.1 命令添加:2.2 DockerFile添加2.3 具名挂载和匿名挂载2.4 数据卷容器三、Dockerfile3.1 什么是 Dockerfile?3.2 Dockerfile的构建过程3.3 Dockerfile保留字3.4 CMD和ENTRYPOINT 的区别3.5 Dockerfile制作Tomcat镜像3.6 发布镜像3.6.1 发布到docker hub3.6.2_the push refers to repository

机器学习中的Encoder和Decoder到底是什么-程序员宅基地

文章浏览阅读2.4w次,点赞34次,收藏107次。微信公众号 转自:https://blog.csdn.net/program_developer/article/details/78752680Encoder-Decoder(编码-解码)是深度学习中非常常见的一个模型框架,比如无监督算法的auto-encoding就是用编码-解码的结构设计并训练..._encoder和decoder

vue点击图片放大(可左右切换,旋转等多种效果)_vue图片点击放大-程序员宅基地

文章浏览阅读1k次。这个插件功能非常强大,支持图片多种效果,vue项目用它就对了._vue图片点击放大

ASI-程序员宅基地

文章浏览阅读746次。目录目录发起一个同步请求创建一个异步请求队列请求请求队列上下文ASINetworkQueues, 它的delegate提供更为丰富的功能取消异步请求安全的内存回收建议向服务器端上传数据下载文件获取响应信息获取请求进度cookie的支持大文件断点续传ASIDownloadCache 设置下载缓存多种的缓存并存缓存策略缓存存储方式缓存其它特性实现自定义的缓存使用代理请求ASIH

Spark:DataFrame批量导入Hbase的两种方式(HFile、Hive)-程序员宅基地

文章浏览阅读417次。Spark处理后的结果数据resultDataFrame可以有多种存储介质,比较常见是存储为文件、关系型数据库,非关系行数据库。各种方式有各自的特点,对于海量数据而言,如果想要达到实时查询的目的,使用HBase作为存储的介质是非常不错的选择。现需求是:Spark对Hive、mysql数据源进行处理,然后将resultDataFrame写入HBase,但是HBase和Spark不在用一个环境..._dataframe 转存 habse

随便推点

在Windows下使用浏览器访问HDFS的小问题_windows浏览器访问docke容器的hdfs-程序员宅基地

文章浏览阅读5k次,点赞4次,收藏5次。关闭每个节点的linux防火墙方法1:临时性关闭防火墙(重启失效)/etc/init.d/iptables stop关闭完成之后可以输入以下指令查看防火墙状态/etc/init.d/iptables status 方法二:永久性关闭防火墙(重启生效)chkconfig iptables on在linux里搭建好HDFS并且跑起来如图(搭建过程参见上一篇博客)上一篇【博客HD..._windows浏览器访问docke容器的hdfs

[docker]容器互联的两种方式_docker容器互联两种方式-程序员宅基地

文章浏览阅读3.1w次,点赞16次,收藏6次。声明:本博客欢迎转发,但请保留原作者信息!博客地址:http://blog.csdn.net/halcyonbaby内容系本人学习、研究和总结,如有雷同,实属荣幸!link方式通过link方式创建容器,然后我们可以使用被link容器的别名进行访问。从而解除应用对IP的依赖。不幸的是,link方式只能解决单机容器间的互联。多机情况下,容器的互联需要其他的方式。[root@localhost ~]#_docker容器互联两种方式

集成百川SDK遇到的问题及解决过程_阿里百川未知app应用-程序员宅基地

文章浏览阅读8.2k次。背景由于项目中需要拍摄小视频,找到了趣拍的SDK,而且发现阿里百川中集成了众多开发必需的SDK, 于是就集成了百川下的 高德地图、IM、友盟等SDK。由于百川中没有趣拍的选项,所以需要把两 个SDK合并起来,期间花了两三天功夫才把所有问题解决完,趁今晚把问题总结一下问题总结由于我是问题解决完了才总结的,期间很多问题都忘了,翻自己上网历史记录才找到的,所以很多都忘了,只能想起来再加。另外由于需要的_阿里百川未知app应用

python二维数组按某行某列顺序、逆序排序_python二维数组逆序-程序员宅基地

文章浏览阅读1.4w次,点赞2次,收藏14次。List1、一维数组2、二维数组无论是一维数组还是二维数组都能通过 list 自带的 sort() 函数进行更新,或者直接调用sorted()方法即可。import numpy as np a = [3,4,5,1,2,3]b = [[3,4,5],[2,3,4]]c = [[3,4,5],[3,3,4]]a.sort() b.sort()c.sort()pri..._python二维数组逆序

adum1201参考电路_采用ADuM1201的CAN总线隔离方法-程序员宅基地

文章浏览阅读1.1k次。采用ADuM1201的CAN总线隔离方法can(controller area network)[3]总线又称控制局域网络,最早由德国bosch公司推出,用于汽车内部测量与执行部件之间的数据通信。can已被公认为几种最有前途的现场总线之一。其总线规范已被iso国际标准组织制订为国际标准。can的主要优点:1、为多主工作方式,可以很方便地构成多机备份系统;2、可以点对点、点对多点及广播方式收发数据,..._adum1201中文资料

计算机数学基础 视频讲解,计算机数学基础课件-程序员宅基地

文章浏览阅读91次。《计算机数学基础课件》由会员分享,可在线阅读,更多相关《计算机数学基础课件(37页珍藏版)》请在人人文库网上搜索。1、计算机科学的数学基础,第一章:语言与正规语言,1.1 符号、符号串及其运算,符号和符号串在形式语言中是非常重要的基本概念。,在计算机科学的发展中,符号主义一直占据着非常重要的位置。,语言的基础是字母表。,王雷版权所有,1.1 符号、符号串及其运算,字母表:一个非空的有限集合称为字母..._计算机数学视频教程

推荐文章

热门文章

相关标签