RedisTemplate的各种操作(set、hash、list、string)

RedisTemplate的踩坑现场 RedisTemplate是Spring封装的一个最常用的redis数据访问工具类,功能强大,使用简洁。但在RedisTemplate看似简单的API下,也是暗流涌动,背后别有一番洞天。本文从一个线上性能问题入手,抽丝剥茧一步步探索RedisTemplate,挖出了RedisTemplate操作psetex命令的深坑。 阅读详情

注入以下RedisTemplate:

@Autowired
private RedisTemplate<String,String> redisTemplate;

1、保存和读取Set:

代码示例:

SetOperations<String, String> set = redisTemplate.opsForSet();
		set.add("set1","22");  
		set.add("set1","33");  
		set.add("set1","44");  
		Set<String> resultSet =redisTemplate.opsForSet().members("set1");  
		System.out.println("resultSet:"+resultSet); 

运行结果为:

resultSet:[[set3, set2, set1]] jedis

2、Hash结构,保存和读取map:

示例代码:

Map<String,String> map=new HashMap<String,String>();  
map.put("key1","value1");  
map.put("key2","value2");  
map.put("key3","value3");  
map.put("key4","value4");  
map.put("key5","value5");  
redisTemplate.opsForHash().putAll("map1",map);  
Map<String,String> resultMap= redisTemplate.opsForHash().entries("map1");  
List<String>reslutMapList=redisTemplate.opsForHash().values("map1");  
Set<String>resultMapSet=redisTemplate.opsForHash().keys("map1");  
String value=(String)redisTemplate.opsForHash().get("map1","key1");  
System.out.println("value:"+value);  
System.out.println("resultMapSet:"+resultMapSet);  
System.out.println("resultMap:"+resultMap);  
System.out.println("resulreslutMapListtMap:"+reslutMapList); 

运行结果为:

value:value1
resultMapSet:[key1, key2, key5, key3, key4]
resultMap:{key3=value3, key2=value2, key1=value1, key5=value5, key4=value4}
resulreslutMapListtMap:[value1, value2, value5, value3, value4]

3、保存和读取list

示例代码:

List<String> list1=new ArrayList<String>();  
 list1.add("a1");  
list1.add("a2");  
 list1.add("a3");  
 
 List<String> list2=new ArrayList<String>();  
  list2.add("b1");  
 list2.add("b2");  
 list2.add("b3");  
redisTemplate.opsForList().leftPush("listkey1",list1);  
redisTemplate.opsForList().rightPush("listkey2",list2);  
List<String> resultList1=(List<String>)redisTemplate.opsForList().leftPop("listkey1");  
 List<String> resultList2=(List<String>)redisTemplate.opsForList().rightPop("listkey2");  
System.out.println("resultList1:"+resultList1);  
System.out.println("resultList2:"+resultList2);  

运行结果:

resultList1:[a1, a2, a3]
resultList2:[b1, b2, b3]

这里需要解释一下:不管是leftPush还是rightPush都可以用leftPop或者rightPoP任意一种获取到其中的值,不过就是获取的遍历方向不一样。有学过数据结构的人都知道里面循环链表是可以前后遍历的,就和这里的场景是一样的。如果还有不懂的话可以去看看这部分的源代码,其实就是遍历方向不同,所以效率也不同。所以最好leftPush用leftPoP遍历,rightPush用rightPoP遍历

4、保存和读取String(最常用的)

System.out.println("缓存正在设置。。。。。。。。。");  
redisTemplate.opsForValue().set("key1","value1");  
redisTemplate.opsForValue().set("key2","value2");  
redisTemplate.opsForValue().set("key3","value3");  
redisTemplate.opsForValue().set("key4","value4");  
System.out.println("缓存已经设置完毕。。。。。。。");  
String result1=redisTemplate.opsForValue().get("key1").toString();  
String result2=redisTemplate.opsForValue().get("key2").toString();  
String result3=redisTemplate.opsForValue().get("key3").toString();  
System.out.println("缓存结果为:result:"+ result1 +"  " + result2+"   " + result3);  
RedisTemplate操作Redis, 看这一篇文章就够了 RedisTemplate 是 Spring Framework 提供的用于操作 Redis 数据库的模板类。通过 RedisTemplate,开发人员可以方便地使用 Spring 提供的 API 来对 Redis 进行操作,比如设置值、获取值、删除值等。RedisTemplate 封装了 Redis 连接、数据序列化、异常处理等操作,简化了与 Redis 的交互过程。 一般情况下,开发人员需要配置 Redis 连接池、序列化器等信息,并将 RedisTemplate 注入到需要使用 Redis 的 Be 阅读详情

相关推荐

SpringBoot中StringRedisTemplate与RedisTemplate区别,以及StringRedisTemplate操作String List队列 Hash Set 详解 模糊查询

SpringBoot中StringRedisTemplate与RedisTemplate区别,以及StringRedisTemplate操作String List Hash Set 详解 模糊查询 两者的关系是StringRedisTemplate继承RedisTemplate。 • 两者的数据是不共通的;也就是说: StringRedisTemplate只能管理StringRedisTemplate里面的数据; RedisTemplate只能管理RedisTemplat redis客户端工具下载

chenthe1的专栏 4902

RedisTemplate 关于Map的操作实战

RedisTemplate 关于Map的操作实战 一、模板操作的工具类 @Slf4j @Component public class RedisTools { @Autowired RedisTemplate redisTemplate; /** * 删除key * @param key */ public void delete(String key) { redisTemplate.delete(key); }

zgx20130619的博客 6849

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2109

RedisTemplate的各种操作(zset、set、hash、list、string)

RedisTemplate的各种操作(zset、set、hash、list、string) 注入以下RedisTemplate @Autowired private RedisTemplate<String,String> redisTemplate; 1、保存和读取Set: 代码示例: ZSetOperations<String, String&g...

baidu_23263735的博客 1786

Ubuntu22.04下安装LDAP

在Ubuntu22.04的时候可以使用apt的方式来安装,在安装LDAP的web 服务器的时候可以考虑选择 LDAP 帐户管理器 (LAM)。因为 PHPLDAPadmin 安装时需要 php 的环境依赖,相对来说安装麻烦。此外在 PHPLDAPadmin 中创建组织和用户时与平常的语法有很大不同,对新手来说不友好。

dl_11的博客 3944

【win11+vs 2017+OpenCV4.5.5+Qt5.12配置】详细安装过程+小问题解决

由于Qt5无法与最新的vs2022兼容,扩展工具中一直显示不可用,所以将vs降级成vs2017。在安装Qt的过程中,会选择安装Qt套件,其中就的MCVS 2017,说明vs2017是与qt兼容的。当然也可以用qt creator这一原生IDE。OpenCV版本目前是最新的4.8.0,使用过程中没有什么问题,但是还是安装低版本大概率避免一些玄学问题。

qq_45306739的博客 3350

java redis set list_RedisTemplate的各种操作(set、hash、list、string)_lichuangcsdn的博客-优快云博客...

注入以下RedisTemplate@Autowiredprivate RedisTemplate redisTemplate;1、保存和读取Set:代码示例:SetOperations set = redisTemplate.opsForSet(); set.add("set1","22"); set.add("set1","33"); set.a...

weixin_33128371的博客 1494

Redis+Unity 数据库搭建

游戏中需要存放排行榜等数据,而且是实时存放,所以就涉及到数据库的问题。这里找服务器大神了解到可以用Redis来做存储,免费的效率极高。

chaixinke的专栏 879

Spring&redis整合RedisTemplate操作{String、List、Set、Zset、Hash}五种数据类型常用方法【超详细+附过程效果图】

最近回顾Spring-redis整合时,事后做了个RedisTemplate存储数据类型相关方法使用过程总结,希望能够帮助到大家! String类型 1.设置当前的key以及value redisTemplate.opsForValue().set(key, value); 2.增减指定key的vaue值(正值则自增,负值则自减) 方式一:可同时修改value值 redisTemplate.opsForValue().increment(key, increment); ..

萌小崔的博客 1万+

十五、SAP-物料需求计划(MRP)

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1094

17.6 LangSmith 私有化部署实战指南:企业级AI应用的安全基石

LangSmith 私有化部署, 企业级AI开发平台, 数据隐私合规, 混合云架构, 模型监控与审计。

yonggeit的博客 3777

RedisTemplate 操作String、Hash、List、Set、Zset

操作String // @Test public void string() throws InterruptedException { ValueOperations&lt;String, String&gt; redisStr = redisTemplate.opsForValue(); String key = "strKey"; System.out.println(red...

zhiguoliu11的专栏 512

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

RedisTemplate 操作Redis中的数据类型(String hash list set 等)

引言: 之前我写了篇 如何在SpringBoot 中引入Redis , 其实无论技术也好,我们不单单要会用,还要懂得一些原理性的东西,这就好比如果你的简历上写了你会Redis ,面试官问你 一些关于Redis 的问题,如果你说不上来 或者答的不好的话,别人可能会觉得你掌握的也不怎么样。 这篇文章让我们已一个问答的形式来掌握Redis 吧!。 参考文章: https://baiji...

Soup's Blog 3111

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

RedisTemplate操作Redis,这一篇文章就够了(一)

RedisTemplate操作Redis,这一篇文章就够了(一) StringRedisTemplate和RedisTemplate的区别(二) StringRedisTemplate的一个小案例(三)

lydms的博客 30万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

RedisTemplate与zset redis

Redis 数据结构简介 Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。 下面来对这5种数据结构类型作简单的介绍: 结构类型 结构存储的值 结构的读写能力 String 可以是字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作;对象和浮点数执行自增(increment)或者自减(decrement) List 一个链

hello 3678

RedisTemplate常用方法总结

删除集合中值等于value的元素(index=0, 删除所有值等于value的元素;index<0, 从尾部开始删除第一个值等于value的元素)key集合与otherKey集合的交集存储到destKey集合中(其中otherKey可以为单个值或者集合)key集合与otherKey集合的并集存储到destKey中(otherKeys可以为单个值或者是集合)获取两个集合的交集(key对应的无序集合与otherKey对应的无序集合求交集)获取两个或者多个集合的并集(otherKeys可以为单个值或者是集合)

2501_90433033的博客 859

RedisTemplate的API方法解析

RedisTemplate的API方法解析

weixin_68107783的博客 399

redisTemplate中String,Hash,List,Set,zSet的方法及部分方法的使用

redisTemplate中String,Hash,List,Set,zSet的方法及部分方法的使用

qq_71695227的博客 1737
上一篇: 6种快速统计代码执行时间的方法
下一篇: 一键生成数据库文档,堪称数据库界的Swagger?
Spring的思念
博客等级 码龄7年 80粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值