栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Redis深度历险》数据精华摘要

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Redis深度历险》数据精华摘要

一、Redis基础数据结构

redis中有5中基本数据结构,分别为:string(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)
string(字符串):Redis的字符串是动态字符串,是可以修改的字符串,内部结构实现上类似于Java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。
如上图所示,内部为当前字符串实际分配的空间capacity一般高于实际字符串长度len。字符串最大长度为512M

list(列表):Redis的列表相当于Java里面的LinkedList,注意它是链表而不是数组。这意味着list的插入和删除操作非常快,时间复杂度为O(1),但是索引定位很慢,时间复杂度为O(n)。Redis的列表结构常用来做异步队列使用。将需要延后处理的任务结构体序列化成字符串塞进Redis的列表,另一个线程从这个列表中轮询数据进行处理。

hash(字典):相当于Java里的HashMap,是无序字典。内部实现结构上同Java的HashMap也是一致的。Redis的字典的值只能是字符串。Java的HashMap在字典很大时,rehash是个耗时的操作,需要一次性全部rehash。redis为了高性能,不堵塞服务,采用了渐进式rehash策略。

set(集合):相当于Java语言里面的HashSet,它内部的键值对是无序的唯一的。它的内部实现相当于一个特殊的字典,字典中所有的value都是一个值null。

zset(有序列表):类似于sortedSet和HashMap的结合体。set保证内部value的唯一性,另一方面它可以给每个value赋予一个score,代表这个value的排序权重。它的内部实现用的是一种叫"跳跃列表"的数据结构。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/862846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号