Redis之Hash类型_redis hashkey_pipizhen_的博客-程序员秘密

技术标签: Redis  redis  redis中Hash类型  

Redis中存取Hash类型

Hash类型保存的值是一个map集合,又因为redis是key-value类型,故hash类型在redis中是key - map,即key - <field,value>。

Map的特点是存储键值对,也是无序不可重复的。


常用命令:

(1)将键值对存入hash中:hset key field value
在这里插入图片描述
如果key是不存在的,会新建一个hash集。
如果field是hash中不存在,就加入该键值对。
如果field在hash中已经存在,就覆盖原来的值。
返回值:返回1表示field在hash中不存在,返回0表所示已经存在。


(2)获取指定hash集中该field的关联值:hget key field
在这里插入图片描述


(3)存入多个值:hmset key field value [field value …]
取出多个值:hmget key field [field…]
在这里插入图片描述


(4)获取hash集中所有的字段和值:hgetall key
在这里插入图片描述
显然:返回的长度是原hash集长度的2倍。


(5)删除hash中的值:hdel key field [field…]
在这里插入图片描述
如果field有不存在的,就忽略该field,继续执行。
返回值:实际删除元素的个数,不包括那些忽略的。


(6)获取hash集中元素的个数:hlen key
在这里插入图片描述


(7)判断hash中是否存在指定字段:hexists key field
在这里插入图片描述
返回值:1表示存在该字段,0表示该字段不存在,或者key不存在。


(8)获取hash集中所有的字段名:hkeys key
获取hash集中所有的值:hvals key
在这里插入图片描述


(9)hash集中指定字段值增加步长:hincrby key field i
在这里插入图片描述
返回值:执行成功后字段的值。
如果key哈希集不存在,则新建一个hash集,并把field的值置为0,再执行。
如果key存在,但field不存在,field也默认置为0。


(10)hash集中指定字段值增加float型步长:hIncrByFloat key field f
在这里插入图片描述
如果field的值类型不是String,或者增加的值f不能转为浮点型,都会报错。


(11)当不存在指定字段时才赋值:hsetnx key field value
在这里插入图片描述
如果key不存在,会创建一个新的hash集。
返回值:1表示字段是个新的字段,成功赋值。0表示字段已存在,不执行操作。


hash命令小结:
增:

  • Hset key field value
  • Hmset key field value [field value …]
  • Hsetnx key field value

删:

  • Hdel key field [field…]

查:

  • Hget key field
  • Hmget key field [field…]
  • Hgetall key
  • Hexists key field
  • Hkeys key
  • Hvals key

改:无

其他:

  • Hincrby key field i
  • HincrbyFloat key field f

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

智能推荐

Github邮箱验证的坑(邮件能收到系列)_节奏昂的博客-程序员秘密

Github邮箱验证今天我注册了github,遇到了一个问题,我相信大家也有类似问题,让人很困扰。开始的注册页面输入注册的名字(name)邮箱(email)密码(password),填写完后点击create account,我就不说了,然后会跳转到第二个步骤邮箱验证 ,这时候坑就开始了。我们会习惯性的点击发送来的qq邮件(注意这时候只有一封邮件,没有验证码邮件),然后点击蓝色按钮verify your email address跳转页面,我们输入账号密码,本来以为成功了,但是没想过啊,又跳转了页面,

web前端响应式设计总结_ImpulsionAndpower的博客-程序员秘密

web前端响应式设计总结一、响应式概述  响应式是指根据不同设备浏览器分辨率或尺寸来展示不同页面结构、行为、表现的设计方式。这里总结了响应式网站设计需要涉及到的相关的内容,有不正确的欢迎大家指正。谈到响应式网站,目前比较主流的做法是通过前端通过判断userAgent来做页面的302跳转。那么问题来了,使用userAgent的问题:依赖设备本身浏览器或设备特点,例如尺寸,

rails路由_bruceelee李小龙的博客-程序员秘密

什么是路由?路在何方,路在脚下。但在web开发中,我们经常会涉及到“路由”的概念,这也是每一个web框架最核心的功能之一,官方解释太过生硬,其实现在web框架路由的概念基本可以简化为:路由就是URL到函数的映射。rails路由的作用?请求首先发送给路由,然后由路由确定应该把请求发送给谁,以及如何解析。在这个阶段,路由会在控制器中找出负责处理请求的动作交互,也可以调用其他动作。最后,动作会向视...

day14-1学习过程笔记_Akihi-13的博客-程序员秘密

正则表达式;Math类;Random类;System类

微服务如何接收下游服务抛出的异常_微服务调用者如何获取下游的异常_快乐妮子的博客-程序员秘密

相信大家在使用微服务的过程中,必定会遇到远程服务的调用,既然这样,必定也会存在一个如何优雅的接收调用下游服务的响应。解决思路(1)统一接口响应实体每个微服务接口的响应类型统一,比如我这边都统一成ResponseBaseDTO类。这个类可以做成一个底层共通的jar包,或者做成一个共通的微服务。import lombok.AllArgsConstructor;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConst.

随便推点

GNN图数据相关任务的分类_gnn 预测边的类型_Rakshas_7的博客-程序员秘密

一、节点层面的任务: 节点层面的任务主要包括分类任务和回归任务。 这类任务虽然是对节点层面的性质进行预测,但是显然不应该将模型建立在一个个单独的节点上,节点的关系也需要考虑。 节点层面的任务有很多,包括学术上使用较多的对论文引用网络中的论文节点进行分类,工业界在线社交网络中用户标签的分类、恶意账户检测等。 二、边层面的任务: 边层面的任务主要包括边的分类和预测任务。 边的分类是指对边的某种性质进行预测;边预测是指给定的两个节点之间是否会构成边。 常见的应用场景比如在社交网络中,将用户作为.

appium自动化框架(1)_appium apppath_dengachao的博客-程序员秘密

一、测试环境Win 10java version "1.8.0_181"Appium v1.14.1(不能低于1.6.3)selenium:3.141.0测试设备:Android 5.1.1Python:3.6测试App:考研帮Android app V3.1.0工程目录:二、测试场景启动APP三、参考代码desired_caps.pyfrom appi...

OpenEXR 文件_Jackery_Shh的博客-程序员秘密

3ds Max 可以采用 OpenEXR 格式读取并写入图像文件。OpenEXR 既是图像文件格式也是常规打开源 API,用于读取和写入某些文件。OpenEXR 文件的文件名扩展名为 .exr 或 .fxr。查找有关 OpenEXR 信息的最佳位置是官方网站。以下是直接从 OpenEXR 主页上获取的内容:“OpenEXR 是高动态范围 (HDR) 的图像文件格式,由

Java语言:Java集合之HashSet查找和删除数据_hashset如何查询元素_「已注销」的博客-程序员秘密

目录查找删除这里还是以宠物猫为例总结一下HashSet中查找和删除数据的方法查找先说一下总体思路:这里还是以宠物猫为例,(不是为了水文章,因为可能全部放在一起的话,一是自己不好查找知识点,另外还有就是放在一篇blog中显得过于冗长)在HashSet中存储了宠物猫的信息查找需要进行查询操作的宠物猫信息查找的方式:第一种,通过对象名查找不过谁能知道对象名啊!一般都是使用宠物猫的名字进行查找所以第二种就是通过宠物猫的名字进行查找...

linux 跨服务器 cp,Linux cp 实现强行批量覆盖_weixin_39548733的博客-程序员秘密

发现在Fedora 10 /ubutun 里面用cp -fr src dest,即使加了-f也是不能强行覆盖的,这时怎么回事的呢?一两个文件还好说,就输几个yes吧,但是要是n多文件怎么办,那还不输死人呢?下面提供三种解决办法。方法一我们输入alias命令,看看系统给cp起了一个什么别名。[[email protected] ~]# aliasalias cp=’cp -i’alias l.=’ls -...

一个接口有多个实现类,controller层调用指定实现类的三种方式(New、@Qualifier、@Resource)_new 接口调用实现类方法_口口不是程序员的博客-程序员秘密

今天上厕所的时候刷到别人说到面向接口编程和面向业务编程,然后就想到了接口的特性,随后想到一个接口可以有多个实现类,有多个实现类的话,控制层是怎么调用其中的实现类的呢?因为以前没遇到过这个问题,自己的实际开发中一个接口只有一个实现类,然后就想到万一一个接口有两个以上的实现类的话,控制层自动注入的实现类到底是哪一个的问题。(然后还想到,自己写的每一个项目,都是一个接口一个实现类,根本没有利用到接口设计的优点,当然这不是本题所讨论的重点,但是可以做个小标记供以后进阶学习。)下面开始介绍我网上搜集到的三种方式。