• 5、数据类型三:hash


    Hash数据类型使用很普遍,它同样是key-value的方式来组织的,只是其value又包含多个field-fieldValue对。想要获取某个fieldValue,可以通过key-field联合来定位。

              图1. hash类型数据组织形式

    从上“图1”可以很好的hash数据的组织形式和用途。比如,系统里面有很多用户,那么如何在redis里面存放用户信息呢?“图1”就展示了如何使用hash数据类型来存放用户信息,使用key来唯一标识用户id,value分别对应用户的“名字、年龄”等信息。

    1、常用命令

    HSET key field value
    HSETNX key field value
    HGET key field
    
    HMSET key field value [field value ...]
    HMGET key field [field ...]
    HGETALL key HKEYS key HVALS key HINCRBY key field increment HINCRBYFLOAT key field increment HLEN key HSTRLEN key field HDEL key field [field ...] HEXISTS key field

    2、命令解析

    ①、HSET key field value / HSETNX key field value

    功能:设置一个哈希值。HSETNX则会检测field是否存在,如果不存在则添加,存在则不作处理。

    时间复杂度:O(1)

    example

    ②、HGETALL key

    功能:通过哈希的key来获取其所有的field-fieldValue键值对。

    时间复杂度:O(N) ,N是hash中field-fieldValue个数。

    example

    ③、HGETALL key / HKEYS key / HVALS key

    功能:HGETALL获取key下面的所有field-fieldValue对;HKEYS获取key下面的所有field值;HVALS key获取key下面所有的fieldValue值。

    时间复杂度: O(N)

    example

    ④、HLEN key / HSTRLEN key field

    功能:HLEN获取哈希中field-fieldValue对的个数。HSTRLEN测量具体fieldValue的字符长度(3.2.0才有的命令)。

    时间复杂度:O(1)

    example

  • 相关阅读:
    codevs 1086 栈 2003年NOIP全国联赛普及组
    1200 同余方程 2012年NOIP全国联赛提高组
    【bzoj4939】【YNOI2016】掉进兔子洞(莫队)
    洛谷P3674 小清新人渣的本愿(莫队)
    Lucas卢卡斯定理
    组合数学习笔记
    洛谷P3178 [HAOI2015]树上操作(线段树)
    洛谷P3258 [JLOI2014]松鼠的新家(树上差分+树剖)
    洛谷P2526 [SHOI2001]小狗散步(二分图匹配)
    bzoj3140: [Hnoi2013]消毒(二分图)
  • 原文地址:https://www.cnblogs.com/lj95801/p/5637999.html
Copyright © 2020-2023  润新知