【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hash

hash键值结构,其中field不能相同,value可以相同。

key                     field          value

user:1:info          name        sid

                           age           27

                           email        [email protected]

跟HBase类似,只是没有列族的概念。可以把key看成一行的主键,field是一行中的列,value是单元格内的值。

所有hash命令都以h开头

hset key field value 给hash key指定的field设置值,该field不存在就添加

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hget key field 获取指定的hash key的field的值

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hgetall key 获取指定hash key的所有的field的值  这个命令谨慎使用,量大时会堵塞

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hkeys key 获取hash key的所有的field

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hvals key 获取hash key的所有的value

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hdel key field 删除指定的hash key的field

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hexists key field 判断一个hash key的filed 是否存在,存在返回1,不存在返回0

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hlen key 获取hash key field的个数

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hmget key field1 field2 field3 批量获取指定hash key的field的值

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

hmset key field1 value1 field2 value2 field3 value3 批量设置指定hash key的field的值

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

时间复杂度

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比

将用户信息缓存到redis中选择用string还是hash的比较

string 1:把所有用户信息转成json格式存到value中。

如 key:user:1:info

value:{“id”:1,"name":"sid","age":27}

string 2: 每个属性一个key,如 

key:user:1:id

value:1

key:user:1:name

value:sid

key:user:1:age

value:27

【五】redis数据结构之hash,命令及其时间复杂度,与string在存储结构化信息时的优缺点对比