Redis | Python : (三) 基本类型Hash

文章目录

  • 1.命令一览
  • 2. 命令详解
    • hset(name, key, value)
    • hsetnx(name, key, value)
    • hget(name, key)
    • hmset(name, mapping)
    • hmget(name, keys, *args)
    • hexists(name, key)
    • hlen(name)
    • hstrlen(name, key)
    • hkeys(name)
    • hvals(name)
    • hgetall(name)
    • hdel(name, *keys)

1.命令一览

2. 命令详解

hset(name, key, value)

将哈希表 name 中域 key 的值设置为 value 。

如果给定的哈希表并不存在, 那么一个新的哈希表将被创建并执行 HSET 操作。

如果域 field 已经存在于哈希表中, 那么它的旧值将被新值 value 覆盖。
>>> redis.hset('person', 'age', 5)
1
>>> 
>>> 

hsetnx(name, key, value)

且仅当域 key 尚未存在于哈希表的情况下, 将它的值设置为 value 。

如果给定域已经存在于哈希表当中, 那么命令将放弃执行设置操作。

如果哈希表 hash 不存在, 那么一个新的哈希表将被创建并执行 HSETNX 命令。
>>> redis.hsetnx('person', 'sex', 'male')
1
>>> 

hget(name, key)

HGET 命令在默认情况下返回给定域的值。

如果给定域不存在于哈希表中, 又或者给定的哈希表并不存在, 那么命令返回 None。
>>> redis.hget('person', 'age')
b'5'
>>> 
>>> 

hmset(name, mapping)

同时将多个 field-value (域-值)对设置到哈希表 key 中。
此命令会覆盖哈希表中已存在的域。
如果 key 不存在,一个空哈希表被创建并执行 HMSET 操作。
>>> redis.hmset('person', {'name': 'wq', 'work': 'IT'})
True
>>> 
>>> 

hmget(name, keys, *args)

返回哈希表 key 中,一个或多个给定域的值。
如果给定的域不存在于哈希表,那么返回一个 nil 值。
因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。
>>> redis.hmget('person', ['age', 'name', 'sex'])
[b'5', b'wq', b'male']
>>> 

hexists(name, key)

检查给定域 field 是否存在于哈希表 hash 当中。
HEXISTS 命令在给定域存在时返回 1 , 在给定域不存在时返回 0 。
>>> redis.hexists('person', 'sex')
True
>>> 

hlen(name)

返回哈希表 key 中域的数量。
>>> redis.hlen('person')
4
>>> 

hstrlen(name, key)

返回哈希表 key 中, 与给定域 field 相关联的值的字符串长度(string length)。
如果给定的键或者域不存在, 那么命令返回 0 。
>>> redis.hstrlen('person','sex')
4
>>> 

hkeys(name)

返回哈希表 key 中的所有域。
>>> redis.hkeys('person')
[b'age', b'sex', b'name', b'work']
>>> 

hvals(name)

返回哈希表 key 中所有域的值。
>>> redis.hvals('person')
[b'5', b'male', b'wq', b'IT']
>>> 
>>> 

hgetall(name)

返回哈希表 key 中,所有的域和值。

在返回值里,紧跟每个域名(field name)之后是域的值(value),所以返回值的长度是哈希表大小的两倍。
>>> redis.hgetall('person')
{b'age': b'5', b'sex': b'male', b'name': b'wq', b'work': b'IT'}
>>> 
>>> 

hdel(name, *keys)

删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
>>> redis.hdel('person', 'sex')
1
>>> 

你可能感兴趣的:(pyredis)