Redis--哈希

哈希类型是指键值本身又是一个键值对结构

-----------------------------命令

---设置值

hset key field value

hsetnx key field value ---此时nx限定的不再是key而是filed

hmset key field value [field value .....] ---批量设置

--获取值

hget key field

hmget key field [field ...]---批量获取

--删除值

hdel key field [field ...]删除一个或多个

--计算field个数

hlen key

--判断field是否存在

hexists key field

---获取所有的属性

hkeys key

--获取所有的values

hvals key

--获取所有的field-values

hgetall key

---自增

hincrby key field

hincrbyfloat key filed

--计算value字符串长度

hstrlen key field (需要Redis3.2以上)


--------内部编码

ziplist(压缩列表):当哈希类型元素个数小于512(默认配置),同事所有值都小于64字节(默认配置),Redis采用ziplist作为哈希的内部实现,ziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。

hashtable(哈希表):当哈希类型无法满足ziplist时,采用hashtable作为哈希的内部实现,因为ziplist的读写效率会下降,而hashtable的读写时间复杂度为O(1)

object encoding hashkey

---------------

哈希类型是稀疏的,而关系型数据库是完全结构化的,哈希类型每个键可以有不同的属性,而关系型数据库是一旦新加属性,则所有的行都需要设置值,即使为空

关系型数据库可以做复杂的关系查询,而Redis去模拟关系型复杂查询开发困难,维护成本高。

你可能感兴趣的:(Redis--哈希)