Redis哈希(Hash)

个人学习笔记

Hash是一个string类型的field和value的映射表,hash适合存储对象。

插入Hash

HMSET zxq name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000

获取Hash

HGETALL zxq

Hash的常用操作

1. 获取所有Hash表中的字段

HKEYS key

    若Hash表为空或者Hash表不存在,返回(empty list or set) 。

2. 获取Hash表中字段的数量

HLEN key

    若Hash表为空或者Hash表不存在,返回(integer) 0 。 

3. 获取Hash表中所有字段对应的值

HVALS KEY 

    若Hash表为空或者Hash表不存在,返回(empty list or set) 。

4. 删除Hash表的字段

HDEL KEY field1 field2...

    当Hash表为空或者Hash表不存在或者Hash表不存在给定的字段时,返回(integer) 0 。

    返回成功删除的字段的数量。

5.  查看Hash表的指定字段是否存在

HEXISTS key field

    若Hash表为空或者Hash表不存在或者Hash表不存在给定的字段,返回(integer) 0 。

    若Hash表包含给定字段,返回(integer) 1 。

6.  获取存储在Hash表中的指定字段的值

HGET KEY_NAME FIELD_NAME 

    若Hash表为空或者Hash表不存在或者Hash表不存在给定的字段,返回(nil) 。

    若KEY对应的不是Hash表,则返回错误 。

    获取多个值,返回对应的值。

HMGET myhash field1 field2 nofield

7.  获取Hash表中的所有字段和值

HGETALL KEY_NAME 

    若Hash表为空或者Hash表不存在,返回(empty list or set) 。

8.  给Hash表中的字段值加上指定增量值

HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER

    若Hash表为空或者Hash表不存在,一个新的Hash表将被创建并且执行HINCRBY命令。

    若该字段不存在,将被初始化为0,加上增量。

    若该字段不是数值,将报错。

9.  给Hash表中的字段加上浮点数增量

HINCRBYFLOAT key field increment

    若Hash表为空或者Hash表不存在,一个新的Hash表将被创建并且执行HINCRBY命令。

    若该字段不存在,将被初始化为0,加上增量。

    若该字段不是数值,将报错。

10. 设置值到Hash表

HMSET KEY_NAME FIELD1 VALUE1 ...FIELDN VALUEN  

    若Hash表不存在,创建一个Hash表,并且执行HMSET命令。

    若KEY对应的不是Hash表,则返回错误 。

    若Hash表存在且字段存在,会覆盖已存在的字段。

11. 设置单个值到Hash表

HSET myhash field1 foo

    若Hash表不存在或者Hash表为空,创建一个Hash表。

    若字段是Hash表中的一个新建字段,并且值设置成功,返回(integer) 1。

    如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 (integer) 0 。

12.  在字段 field 不存在时,设置哈希表字段的值。

HSETNX KEY_NAME FIELD VALUE

    若Hash表为空或者Hash表不存在,创建一个Hash表,执行HSET操作。

    若Hash表存在已有的字段,操作无效,返回(integer) 0 。

    若Hash表不存在已有的字段,返回(integer) 1 。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )