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去模拟关系型复杂查询开发困难,维护成本高。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Redis的内存优化 声明:本文内容来自《Redis开发与运维》一书第八章,如转载请声明。 Redis所有的数据都...
    meng_philip123阅读 19,024评论 2 29
  • Redis 哈希(Hash) 命令 下表列出了 redis hash 基本的相关命令: 1> hdel 命令:删除...
    stakeing阅读 6,863评论 0 0
  • 参考来源 Redis的内存优化 Redis所有的数据都在内存中,而内存又是非常宝贵的资源。对于如何优化内存使用一直...
    秦汉邮侠阅读 5,098评论 0 2
  • 声明:本文内容来自《Redis开发与运维》一书第八章,如转载请声明。Redis所有的数据都在内存中,而内存又是非常...
    yoqu阅读 5,420评论 0 2
  • 一袭洒脱,不忘那一叶弯眉。心舟过处,最是无声凌落万千。 低沉何盼,怎是归来天涯路。夜夜声声泣,谁来呼唤子夜里的那一...
    向行阅读 3,418评论 2 4

友情链接更多精彩内容