RedisTemplate使用最详解(三)--- opsForHash()

1、put(H var1, HK var2, HV var3)

新增hashMap值

  • var1 为Redis的key
  • var2 为key对应的map值的key
  • var3 为key对应的map值的值
  • var2相同替换var3
redisTemplate.opsForHash().put("hashValue","map1","value1");
redisTemplate.opsForHash().put("hashValue","map2","value2");

2、get(H var1, Object var2)

获取key对应的map中,key为var2的map的对应的值

Object o = redisTemplate.opsForHash().get("hashValue", "map1");
System.out.println("o = " + o);

3、entries(H key)

获取key对应的所有map键值对

Map hashValue = redisTemplate.opsForHash().entries("hashValue");
System.out.println("hashValue = " + hashValue);

4、keys(H key)

获取key对应的map中所有的键

Set hashValue = redisTemplate.opsForHash().keys("hashValue");
System.out.println("hashValue = " + hashValue);

5、values(H key)

获取key对应的map中所有的值

6、hasKey(H key, Object var2)

判断key对应的map中是否有指定的键

Boolean aBoolean = redisTemplate.opsForHash().hasKey("hashValue", "map1");
System.out.println("aBoolean = " + aBoolean);

7、size(H key)

获取key对应的map的长度

Long hashValue = redisTemplate.opsForHash().size("hashValue");
System.out.println("hashValue = " + hashValue);

8、putIfAbsent(H key, HK var2, HV var3)

如何key对应的map不存在,则新增到map中,存在则不新增也不覆盖

redisTemplate.opsForHash().putIfAbsent("hashValue", "map3", "value3");
9、putAll(H key, Map<? extends HK, ? extends HV> map)

直接以map集合的方式添加key对应的值

  • map中key已经存在,覆盖替换
  • map中key不存在,新增
Map newMap = new HashMap();
newMap.put("map4","map4");
newMap.put("map5","map5");
redisTemplate.opsForHash().putAll("hashValue",newMap);

10、multiGet(H key, Collection var2)

以集合的方式获取这些键对应的map

List list = new ArrayList<>();
list.add("map1");
list.add("map2");
List hashValue = redisTemplate.opsForHash().multiGet("hashValue", list);
System.out.println("hashValue = " + hashValue);

11、lengthOfValue(H key, HK var2)

获取指定key对应的map集合中,指定键对应的值的长度

Long aLong = redisTemplate.opsForHash().lengthOfValue("hashValue", "map1");
System.out.println("aLong = " + aLong);

12、increment(H key, HK var2, long long1)

使key对应的map中,键var2对应的值以long1自增

Long increment = redisTemplate.opsForHash().increment("hashValue", "map7", 1);
System.out.println("increment = " + increment);

13、increment(H key, HK var2, double d1)

使key对应的map中,键var2对应的值以double类型d1自增

Double increment = redisTemplate.opsForHash().increment("hashValue", "map8", 1.2);
System.out.println("increment = " + increment);

14、scan(H var1, ScanOptions var2)

匹配获取键值对

  • ScanOptions.NONE为获取全部键对
  • ScanOptions.scanOptions().match(“map1”).build(),匹配获取键位map1的键值对,不能模糊匹配
Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.scanOptions().match("map1").build());
//Cursor<Map.Entry<Object,Object>> cursor = redisTemplate.opsForHash().scan("hashValue",ScanOptions.NONE);while (cursor.hasNext()) {Map.Entry<Object, Object> entry = cursor.next();System.out.println("entry.getKey() = " + entry.getKey());System.out.println("entry.getValue() = " + entry.getValue());}

15、delete(H key, Object… var2)

删除key对应的map中的键值对

Long delete = redisTemplate.opsForHash().delete("hashValue", "map1", "map2");
System.out.println("delete = " + delete);

16、拓展

map中存储对象、对象集合时最好转为JSON字符串,容易解析

map中键值对都可以存为对象、对象集合JSON字符串,具体看实际应用存储

List<MPEntity> list = mpService.list();
redisTemplate.opsForHash().put("hashValue",JSON.toJSONString(list),JSON.toJSONString(list));

领取免费学习资源

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java官网下载JDK17版本详细教程(下载、安装、环境变量配置)

第一步&#xff0c;去百度搜索甲骨文官网 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 然后在系统变量里面找到path-编辑-新建添加这个,点击确定就好了 %JAVA_HOME%\bin 就完成了&#xff0c;接下来测试是否成功。 测试&#xff1a; 第一步&a…

VC++6.0 ListViewReport报表使用例子

操作步骤&#xff1a; 1&#xff0c;拖一个ListContorl控件 2&#xff0c;修改ID名称 3&#xff0c;设置Report样式 3&#xff0c;加入初始化代码 void CDuplicatefilesclearDlg::InitlizationListView() {CListCtrl *lstVew (CListCtrl*)GetDlgItem(IDC_LIST_Main);lstVew-&…

“联宝360“项目深度解析:创新模式与互助机制

大家好&#xff0c;我是吴军&#xff0c;来自一家知名的互联网科技公司&#xff0c;负责产品策略分析。 最近&#xff0c;我观察到社交网络上出现了一个名为“联宝360”的热门项目&#xff0c;它引发了众多团队长的热烈讨论和积极推广。这个项目虽然是在今年年初刚刚启动的&am…

CTP电池托盘市场调研报告-主要企业、市场规模、份额及发展趋势

CTP电池托盘市场报告主要研究&#xff1a; CTP电池托盘市场规模&#xff1a; 产能、产量、销售、产值、价格、成本、利润等 CTP电池托盘行业竞争分析&#xff1a;原材料、市场应用、产品种类、市场需求、市场供给&#xff0c;下游市场分析、供应链分析、主要企业情况、市场份…

羊大师分析,羊奶健康生活的营养源泉

羊大师分析&#xff0c;羊奶健康生活的营养源泉 羊奶&#xff0c;作为一种古老的饮品&#xff0c;近年来因其独特的营养价值和健康益处而备受关注。今天&#xff0c;羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…

KeyValuePair和Dictionary和Tuple区别和应用

在C#中&#xff0c;Tuple 和 Dictionary 是两种不同的数据结构&#xff0c;它们各自有不同的用途和特性。以下是它们之间的主要区别&#xff1a; Tuple&#xff08;元组&#xff09; 定义&#xff1a;Tuple 是一个包含多个元素&#xff08;这些元素可以是不同类型的&#xff0…

如何做一个厂区的导航地图?工厂导航定位怎么解决方案

厂区定位导航是一种基于位置服务&#xff08;LBS&#xff09;的导航系统&#xff0c;通过获取厂区内的位置信息&#xff0c;为用户提供准确的导航服务。该系统能够实时显示用户当前位置&#xff0c;提供目的地导航、路径规划、实时定位、语音提示等功能&#xff0c;帮助用户快速…

卷积神经网络的理解

1. 神经网络主要分为5层&#xff0c;输入层&#xff0c;卷积层&#xff0c;池化层&#xff0c;全连接层和输出层 输入层&#xff0c;输入图像 卷积层&#xff0c;图片与卷积核的内积&#xff0c;得到一个特征图&#xff08;局部图&#xff09;&#xff0c; 激活层&#xff0…

KEBA科霸注塑机电脑维修KEMRO K2-700工业CNC控制器主机CPU主板

类别&#xff1a; 触摸屏液晶显示器 制造商&#xff1a; KEBA制造商部件号&#xff1a;K2-700系列&#xff1a;KEMRO K2-200 PLC也称为&#xff08;AKA&#xff09;&#xff1a;深圳捷达工控维修是您工业维修的最佳来源。 我们可以在我们的工厂维修您的 KEBA 型号 K2-700。让我…

Process Monitor下载安装使用教程(图文教程)超详细

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

maven的安装与配置(超详细)

在Java开发中&#xff0c;配置Maven环境有几个重要的原因&#xff1a; 依赖管理&#xff1a;Maven 是一个强大的依赖管理工具&#xff0c;它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件&#xff08;pom.xml&#xff09;中定义依赖&…

操作系统整理(一)

目录 一、引言 二、操作系统 ------>2.1、整体介绍 ------------>2.1.1、kernel主要组件 ------------>2.1.2、内核版本 ------------>2.1.3、qemu 搭建kernel调试环境 ------>2.2、linux启动流程 三、五大子系统介绍 四、IO机制原理与系统总线 -----…

MySQL数据库--分组与统计

目录 1.统计函数 1.1COUNT&#xff08;&#xff09;函数 1.2SUM&#xff08;&#xff09;函数 1.3AVG()函数 1.4MAX()函数 1.5MIN()函数 2.分组查询 2.1单独使用GROUP BY分组查询 2.2使用GROUP BY分组和统计函数一起查询 2.3HAVING限制分组查询结果 欢迎 1.统计函数 …

人工智能改善客户体验的10种方式

什么是人工智能客户体验&#xff1f; 人工智能客户体验是指使用人工智能技术&#xff08;如机器学习、聊天机器人和对话式用户体验&#xff09;使每个接触点尽可能高效且无障碍的实践。本质上&#xff0c;客服代表得到了一个虚拟助手帮助他们完成重复性任务。这意味着对于有简…

Vue3选项式和组合式生命周期说明

生命周期&#xff1a;composition 生命周期先后顺序为&#xff1a; setup -beforeCreate和created的统称&#xff0c;只在composition里面取消这两个&#xff0c;可以在这里进行数据请求 onBeforeMount-挂载前&#xff0c;可以请求后台数据 onMounted-挂载&#xff0c;可以…

期权(1):基本概念,权利金,定金,买方,卖方,零和游戏,对赌协议

期权是合约&#xff0c;权利金就是定金&#xff01; 合约到期时 买方可以选择行权&#xff0c;也可以选择不行权。代价就是定金损失。因此亏损封顶&#xff0c;但盈利无限。卖方赚的就是买方的定金&#xff0c;盈利封顶&#xff0c;但亏损无限。 从这里&#xff0c;我们看出…

C语言例题42、打印金字塔

#include <stdio.h>void main() {int i, j;for (i 0; i < 5; i) {for (j 4; j > i; j--) {//输出空格printf(" ");}for (j 0; j < 2 * i 1; j) {//输出星号printf("* ");}printf("\n");} }运行结果&#xff1a; 本章C语言经…

HTML5实现简洁好看的个人主页,个人小站(多种风格附源码)

文章目录 1.烟灰主题个人主页1.1 个人主页界面1.2 个人信息界面1.3 兴趣爱好界面1.4 个人作品界面 2.紫霞主题个人主页2.1 个人主页界面2.2 个人信息界面2.3 兴趣爱好界面2.4 个人作品界面 3.墨夜主题个人主页3.1 个人主页界面3.2 个人信息界面3.3 兴趣爱好界面3.4 个人作品界面…

查看所有Python虚拟环境的方法

查看所有Python虚拟环境的方法取决于你使用的是哪种虚拟环境管理工具。下面是几种常见情况下的查看方法&#xff1a; 使用 venv 或标准Python虚拟环境&#xff1a; 在大多数Unix/Linux系统&#xff08;包括macOS&#xff09;上&#xff0c;如果你使用的是Python自带的 venv 模块…

优雅谈论大模型5: RAG

RAG 众所周知&#xff0c;大模型以及一些预训练的模型在训练完毕之后会在其参数存储了大量的压缩资讯。但是这样的参数是通过固定的语料库训练而成&#xff0c;训练完毕之后这个模型已经固定了。然而外部资讯瞬息万变&#xff0c;加上大模型本质上为一种概率模型&#xff0c;所…