链条传动

砥砺前行,不忘初心!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

几乎所有的编程语言都提供了哈希(hash) 类型, 它们的叫法可能是哈希、 字典、 关联数组

 

相关命令

 

设置值
hset key field value

获取值
hget key field

删除field
hdel key field [field ...]

计算field个数
hlen key

批量设置或获取field-value
hmget key field [field ...]
hmset key field value [field value ...]

判断field是否存在
hexists key field

获取所有field
hkeys key

获取所有value
hvals key

获取所有的field-value
hgetall key

hincrby hincrbyfloat  
hincrby key field
hincrbyfloat key field
注:hincrby和hincrbyfloat, 就像incrby和incrbyfloat命令一样, 但是它们的作用域是filed

计算value的字符串长度
hstrlen key field

 

命令复杂度

 

内部编码

哈希类型的内部编码有两种:
ziplist(压缩列表) : 当哈希类型元素个数小于hash-max-ziplist-entries配置(默认512个) 、 同时所有值都小于hash-max-ziplist-value配置(默认64字节) 时, Redis会使用ziplist作为哈希的内部实现。
ziplist使用更加紧凑的结构实现多个元素的连续存储, 所以在节省内存方面比hashtable更加优秀。
hashtable(哈希表) : 当哈希类型无法满足ziplist的条件时, Redis会使用hashtable作为哈希的内部实现, 因为此时ziplist的读写效率会下降, 而hashtable的读写时间复杂度为O(
1) 。

 

posted on 2020-11-11 17:47  链条君  阅读(90)  评论(0编辑  收藏  举报