个人学习笔记
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 。