首页 > 数据库 >redis的hash类型操作方法

redis的hash类型操作方法

时间:2023-10-05 10:11:32浏览次数:42  
标签:boundHashOps hash key 操作方法 redis value field 哈希 redisTemplate

一、介绍

  1. Hash是一个键值对的集合。Hash 是一个 String 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
  2. Hash存储结构优化:
  • 如果field数量较少,存储结构优化为类数组结构
  • 如果field数量较多,存储结构使用HashMap结构

二、原生操作

1.增加/修改【key的field的value】

  • 增加/修改
hset key field value

  如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。 如果字段已经存在于哈希表中,旧值将被重写

  • 增加(多个)
hmset key field1 value1 field2 value2……
  • 增加(锁,只有field不存在时生效)
 hsetnx key field value

如果哈希表不存在,一个新的哈希表被创建并进行 hsetnx 操作。

如果字段已经存在于哈希表中,操作无效。

如果 key 不存在,一个新哈希表被创建并执行 hsetnx 命令

2.查询

  • 查询一个(key的field的value)
hget key field
  • 查询所有field
hkeys key
  • 查询所有value
hvals key

3.删除【key的field】

  • 删除一个或多个
hdel key field1 field2……

不存在的字段将被忽略

方法 判断指定key中是否存在field

hexists key field

三、java操作redis的hash类型

1.修改

  • 重新命名当前key的名称
redisTemplate.boundHashOps(key).rename("test");          

2.查询

  • 根据指定key中得键取出值
System.out.println(redisTemplate.boundHashOps("demo").get("1"));
  • 根据指定key取出所有键
Set<Object> keys = redisTemplate.boundHashOps("demo").keys();
  • 获取指定key中所有键值对得值
List<Object> values = redisTemplate.boundHashOps("demo").values();
System.out.println(values);
  • 根据指定key取出全部键值对
 Map&lt;Object, Object&gt; entries &#61; redisTemplate.boundHashOps(&#34;demo&#34;).entries();

3.删除

  • 根据指定key中得键删除
redisTemplate.boundHashOps("demo").delete("1");

标签:boundHashOps,hash,key,操作方法,redis,value,field,哈希,redisTemplate
From: https://www.cnblogs.com/visioning/p/17743110.html

相关文章

  • 如何保证Redis的HA高可用
    目录1.关于Redis2.Redis的使用场景3.Redis的高可用3.1哨兵模式(Sentinel)3.2集群模式(Cluster)4.参考本文主要介绍Redis如何保证高可用。1.关于RedisRedis(RemoteDictionaryServer)是一个开源的,基于内存的数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种类......
  • Redis
    1、概述是一个由C语言开发的基于key-value形式的非关系型数据库key-value:键值对【键:String,值:五种数据类型】非关系数据库:NoSQL【NotOnlySQL】关系型数据库:由二维表的形式来存储数据不是关系型数据库,就是非关系型数据库存储介质默认是内存可以持久......
  • HashMap
    ......
  • springboot+Uniapp+redis开发的AI医疗智能导诊系统源码
    AI+医疗的智能导诊系统源码 自主版权 支持二开一、什么是智能导诊系统?智能导诊系统是一种基于人工智能和大数据技术开发的医疗辅助软件,它能够通过对患者的症状、病史等信息进行计算分析,快速推荐科室和医生。通过简单的描述自身症状,系统即可找到最适合的科室,实现线上高效挂号,线下......
  • 探索Redis的字符串设计思想
    探索Redis的字符串设计思想作者:沈自在1引言​ 在Redis中的字符串和我们平时Java中所写的字符串是不一样的,在Java的设计中String是由final修饰的,因此也就成就了他不可变的特性。此外,在C语言的字符标准形式中是以NULL结尾的,但是要通过strlen函数去获取长度的复杂度却是O(n)的,......
  • 点赞功能改进-Redis数据结构设计
        ......
  • vue中beforedistory应用
    遇到一个问题,就是我在使用全局事件总线的时候发布了一个事件,然后在a组件里面这个时间会被触发一次,在b组件里面也会触发一次.这两个组件是平级组件不是嵌套组件.然后呢,在a组件触发完之后,我去了b组件,在b组件中触发相同时间的时候,a组件的逻辑和b组件的逻辑都执行了一次.一开......
  • MongoDB 和 Redis 的区别
    在现代的应用程序开发中,数据库是不可或缺的组成部分。MongoDB和Redis是两种流行的数据库,它们在一些方面有相似之处,但在其他方面则有着显著的差异。下面,我们将探讨MongoDB和Redis的区别。数据模型MongoDB是一个面向文档的数据库,它存储的数据是以BSON(BinaryJSON)格式存......
  • Centos安装Redis
    一、下载安装redis1.1新建文件夹redis,获取安装包wgethttp://download.redis.io/releases/redis-5.0.5.tar.gz11.2解压安装包tar-zxvfredis-5.0.5.tar.gz11.3进入解压后的文件目录使用make命令进行编译1.4进入src文件执行makeinstall安装redis1.5在src目录执行./redis......
  • redis中各种scan命令学习
    转自:https://blog.csdn.net/qq_40399646/article/details/109034331,这个博客讲的非常好http://jinguoxing.github.io/redis/2018/09/04/redis-scan/1.介绍keys命令可以列出所有满足特定正则字符串规则的key。但它没有offset、limit参数,会一次性返回所有满足条件的key,是遍历......