友点网站建设,百度seo搜索引擎优化厂家,阿里巴巴网站的建设内容,自己建设网站需要多少钱1. 介绍
Redis 中存储的 key-value 本身就是哈希表的结构#xff0c;存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示
2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为…1. 介绍
Redis 中存储的 key-value 本身就是哈希表的结构存储的 value 也可以是一个哈希表的结构 这里每一个 key 对应的一个 哈希类型用 field-value 来表示
2. 常用命令 命令 介绍 时间复杂度 hset key field value 用于设置哈希表 key 中字段 field 的值为 value O (1) hget key field 获取哈希表 key 中字段 field 的值 O (1) hdel key field [field ...] 删除哈希表 key 中的一个或多个字段 O (k)k 是字段个数 hlen key 计算哈希表 key 中字段的个数 O (1) hgetall key 获取哈希表 key 中所有的字段和值 O (k)k 是字段个数 hmget field [field ...] 批量获取哈希表 key 中多个字段的值 O (k)k 是字段个数 hmset field value [field value ...] 批量设置哈希表 key 中多个字段的值 O (k)k 是字段个数 hexists key field 判断哈希表 key 中字段 field 是否存在 O (1) hkeys key 获取哈希表 key 中所有的字段 O (k)k 是字段个数 hvals key 获取哈希表 key 中所有的值 O (k)k 是字段个数 hsetnx key field value 只有在哈希表 key 中的字段 field 不存在时才设置其值为 value O (1) hincrby key field n 将哈希表 key 中字段 field 的值增加 n O (1) hincrbyfloat key field n 将哈希表 key 中字段 field 的值增加浮点数 n O (1) hstrlen key field 计算哈希表 key 中字段 field 值的字符串长度 O (1)
3. 内部编码
hashtable最基本的 hash 表
ziplist如果 hash 表中的元素比较少并且 value 的长度比较短的时候会优化为 ziplist节省内存
压缩的本质是针对数据进行重新编码编码之后就能缩小体积ziplist 付出的代价是进行读写元素时速度较慢但是如果元素个数较少影响不大如果元素个数多了就会影响效率所以当哈希表中的元素较少并且每一个 value 的值的长度都比较短时使用 ziplist 表示如果某个 value 长度过长也会转化为 hashtable
4. 应用场景
hash 类型也可以作为缓存来使用可以用来存储用户信息 通过 hash 表的方式来存储相比于 String 来存储 JSON 更加简单直观灵活JSON 和对象的相互转化需要用到序列化和反序列化需要一定的开销不过 hash 的方式存储也设计到 ziplist 到 hashtable 的编码的转换可能造成内存的较大消耗