Redis读书笔记_Redis命令_Hash哈希表

Redis哈希表hash

通过使用Hash,你可以一个高级别的Redis key上面存储一组键值对。这些值提供了一些和String字符串相同的特性,并且对于组相关的数据十分有用。你可以把这个数据组想象成关系型数据库中的一条记录或者文档库中的一篇文档。



hash就是迷你版的redis。

这里有一篇文章,是关于redis的内存优化的:redis内存优化



操作hash的redis命令

HMGET HMGET key-name key [key ....]                                     #获取hash里面这些字段上的值

HMSET      HMSET    key-name    key  value  [key value  ...]      #为里面的一个或多个键设置值

HDEL      HDEL    key-name    key  [key ...]                                    # 设置hash里面的指定键值对

HLEN      HLEN    key-name                                                            # 返回hash里面键值对的数量

hmset命令:

  同时将多个field-value键值对放入到哈希表key中,此命令会覆盖哈希表中已存在的域,

    如果key不存在,一个空哈希表被创建并执行hmset操作。

hmget命令:

返回哈希表 key 中,一个或多个给定域的值。

如果给定的域不存在于哈希表,那么返回一个 nil 值。

因为不存在的 key 被当作一个空哈希表来处理,所以对一个不存在的 key 进行 HMGET 操作将返回一个只带有 nil 值的表。

时间复杂度: O(N), N 为给定域的数量



使用案例

把{‘k1’:'v1',‘k2’:'v2',‘k3’:'v3',‘k4’:'v4',‘k5’:'v5'} 这5个键值对放入到键为my-hash-key的hash数据结构中,并取出其中某一个键的值

hmset my-hash-key k1 'v1' k2 'v2' k3 'v3' k4 'v4' k5 'v5'



Redis读书笔记_Redis命令_Hash哈希表_第1张图片
存取


hash的高级命令


hexists                 hexist key-name key                     #检查给定键是否存在于散列中

  hkeys                  hkeys    key-name                        #获取哈希里面包含的所有键

  hvals                  hvals    key-name                      #获取哈希表里面的所有值

  hgetall                hgetall  key-name                      #获取哈希表里面包含的所有键值对

  hincrby                hincrby  key-name    key  increment      #将键key存储的值加上整数increment

  hincrbyfloat          hincrbyfloat  key-name key  increment    #将键key存储的值加上浮点数increment

你可能感兴趣的:(Redis读书笔记_Redis命令_Hash哈希表)