Redis常用操作-------Hash(哈希表)
1.HDEL key field [field ...]
删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
在Redis2.4以下的版本里, HDEL 每次只能删除单个域,如果你需要在一个原子时间内删除多个域,请将命令包含在 MULTI / EXEC块内。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为要删除的域的数量。
- 返回值:
- 被成功移除的域的数量,不包括被忽略的域。
-
# 测试数据 redis> HGETALL abbr
) "a"
) "apple"
) "b"
) "banana"
) "c"
) "cat"
) "d"
) "dog" # 删除单个域 redis> HDEL abbr a
(integer) # 删除不存在的域 redis> HDEL abbr not-exists-field
(integer) # 删除多个域 redis> HDEL abbr b c
(integer) redis> HGETALL abbr
) "d"
) "dog"
2.HEXISTS key field
查看哈希表 key 中,给定域 field 是否存在。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(1)
- 返回值:
-
如果哈希表含有给定域,返回 1 。如果哈希表不含有给定域,或 key 不存在,返回 0 。
3.HGET key field
返回哈希表 key 中给定域 field 的值。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(1)
- 返回值:
-
给定域的值。当给定域不存在或是给定 key 不存在时,返回 nil 。
4.HGETALL key
返回哈希表 key 中,所有的域和值。
在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为哈希表的大小。
- 返回值:
-
以列表形式返回哈希表的域和域的值。若 key 不存在,返回空列表。
5.HINCRBY key field increment
为哈希表 key 中的域 field 的值加上增量 increment 。
增量也可以为负数,相当于对给定域进行减法操作。
如果 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。
对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。
本操作的值被限制在 64 位(bit)有符号数字表示之内。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(1)
- 返回值:
- 执行 HINCRBY 命令之后,哈希表 key 中域 field 的值。
6.HINCRBYFLOAT key field increment
为哈希表 key 中的域 field 加上浮点数增量 increment 。
如果哈希表中没有域 field ,那么 HINCRBYFLOAT 会先将域 field 的值设为 0 ,然后再执行加法操作。
如果键 key 不存在,那么 HINCRBYFLOAT 会先创建一个哈希表,再创建域 field ,最后再执行加法操作。
当以下任意一个条件发生时,返回一个错误:
- 域 field 的值不是字符串类型(因为 redis 中的数字和浮点数都以字符串的形式保存,所以它们都属于字符串类型)
- 域 field 当前的值或给定的增量 increment 不能解释(parse)为双精度浮点数(double precision floating point number)
HINCRBYFLOAT 命令的详细功能和 INCRBYFLOAT 命令类似,请查看 INCRBYFLOAT 命令获取更多相关信息。
- 可用版本:
- >= 2.6.0
- 时间复杂度:
- O(1)
- 返回值:
- 执行加法操作之后 field 域的值。
7.HKEYS key
返回哈希表 key 中的所有域。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为哈希表的大小。
- 返回值:
-
一个包含哈希表中所有域的表。当 key 不存在时,返回一个空表。
8.HLEN key
返回哈希表 key 中域的数量。
- 时间复杂度:
- O(1)
- 返回值:
-
哈希表中域的数量。当 key 不存在时,返回 0 。
9.HMGET key field [field ...]
返回哈希表 key 中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回一个 nil 值。
因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为给定域的数量。
- 返回值:
- 一个包含多个给定域的关联值的表,表值的排列顺序和给定域参数的请求顺序一样。
10.HMSET key field value [field value ...]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为 field-value 对的数量。
- 返回值:
-
如果命令执行成功,返回 OK 。当 key 不是哈希表(hash)类型时,返回一个错误。
11.HSET key field value
将哈希表 key 中的域 field 的值设为 value 。
如果 key 不存在,一个新的哈希表被创建并进行 HSET 操作。
如果域 field 已经存在于哈希表中,旧值将被覆盖。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(1)
- 返回值:
-
如果 field 是哈希表中的一个新建域,并且值设置成功,返回 1 。如果哈希表中域 field 已经存在且旧值已被新值覆盖,返回 0 。
12.HSETNX key field value
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在。
若域 field 已经存在,该操作无效。
如果 key 不存在,一个新哈希表被创建并执行 HSETNX 命令。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(1)
- 返回值:
-
设置成功,返回 1 。如果给定域已经存在且没有操作被执行,返回 0 。
-
13.HVALS key
返回哈希表 key 中所有域的值。
- 可用版本:
- >= 2.0.0
- 时间复杂度:
- O(N), N 为哈希表的大小。
- 返回值:
-
一个包含哈希表中所有值的表。当 key 不存在时,返回一个空表。
Redis常用操作-------Hash(哈希表)的更多相关文章
- Redis常用操作-------Key(键)
1.DEL key [key ...] 删除给定的一个或多个 key . 不存在的 key 会被忽略. 可用版本: >= 1.0.0 时间复杂度: O(N), N 为被删除的 key 的数量. ...
- redis下操作hash对象
redis下操作hash对象 hash用于存储对象,对象的格式为键值对 命令 设置 设置单个属性 HSET key field value 设置多个属性 HMSET key field value [ ...
- Hash 哈希表和算法思路详解
概述 哈希表是一种可以满足快速查找数据结构,时间复杂度接近O(1). 哈希函数是无限集到有限集的映射. 处理数据量大,查找效率要求高时推荐使用hash容器. 问题: 什么情况下考虑使用哈希容器? 常用 ...
- 【Redis使用系列】Redis常用操作
一.string类型的常用命令 set key value #一个key对应一个value.多次赋值,会覆盖前面. setnx key value #如果key存在则创建key1,并返回1,如果 ...
- Python Redis常用操作(持续更新)
目录 1.Redis简介 2.Redis部署 3.Redis API应用 4.String操作 1.Redis简介 redis是业界主流的key-value,nosql数据库之一.和Memcached ...
- hash 哈希表 缓存表
系统初始hash表为空,当外部命令执行时,默认会从 PATH路径下寻找该命令,找到后会将这条命令的路径记录到 hash表中,当再次使用该命令时,shell解释器首先会查看hash 表,存在将执行之,如 ...
- 2、使用HashOperations操作redis(Hash哈希表)
文章来源:https://www.cnblogs.com/shiguotao-com/p/10560458.html 方法 c参数 s说明 Long delete(H key, Object... h ...
- lunix下的redis数据库操作——hash(哈希)
哈希,形如:key : (field : value) 创建:(可以理解为users用户,name为xxx) hset users name xxx 查看: hget users name # &qu ...
- redis常用操作总结
在项目中时常会用到redis,redis看起来好像很难的样子,而且我也确认反复学习了很久,但是,总结下来,自己使用到的东西并不太多,如下作一些总结工作. 1.安装(单机) 1.1 windows, 直 ...
随机推荐
- Python3 下实现 腾讯人工智能API 调用
1.背景 a.鹅厂近期发布了自己的人工智能 api,包括身份证ocr.名片ocr.文本分析等一堆API,因为前期项目用到图形OCR,遂实现试用了一下,发现准确率还不错,放出来给大家共享一下. b.基于 ...
- Apache的配置详解 带图
对Apache 的 Http.conf 各项配置详解 1.01 ServerRoot 配置 [ServerRoot "" 主要用于指定 Apache 的安装路径,此选项参数值在安装 ...
- Linux 小知识翻译 - 「Linux和CPU的兼容性」
Linux刚开始是作为可运行在 Intel 的 「i386」CPU上,与POSIX兼容的内核来开发的. 而现在主流的Linux是指能在所谓「PC」上运行的内核.「PC」是指采用「IA(intel架构) ...
- debian 7.4 安装配置
改用debian差不多有半年了,之前一直用fedora,大概3年多,虽然软件包都很新,总是不太稳定,有点软件用着用着就自动退出了. 换了debain之后,这半年还真是一直没啥问题,这里总结了一些安装配 ...
- java 操作elasticsearch之搭建测试项目环境
在创建项目之前请确认maven是否安装好,在此我是以环境都搭建好的情况下进行示范,现在以eclipse开发工具为例,具体操作如下: 1.创建maven项目 File - new -other 2.在p ...
- apply 和call 的区别,apply实用小技巧
Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...
- 780. Reaching Points
idea: 1.从后向前找 2.while (tx > ty) tx -= ty; 替为 % 操作 3.经过循环后,必定只有两种情况才true sx == tx && sy &l ...
- Appium1.9.1 部署及结果检验
1.官网下载最新的 appium 2.点击 Download Appium 3.选择适用于自己操作系统的版本,我的是 windows版本,就选择如下红圈起的 4.点击安装,一直点 下一步 直到提示安装 ...
- 【JavaScript】获取当前页的URL与window.location.href
原文:http://blog.csdn.net/yongh701/article/details/45688743 版权声明:本文为博主原创文章,未经博主允许欢迎乱转载,标好作者就可以了!感谢欣赏!觉 ...
- 【美妙的Python之三】Python 对象解析
美妙的Python之Python对象 简而言之: Python 是能你无限惊喜的语言.与众不同. Python对象概念的理解,是理解Python数据存储的前提.Pyth ...