排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
举报
首页
/
Redis 中的数据结构
Redis 中的数据结构
白杨的梦呓
2022-03-08
227
Redis 有个典型的特点就是访问速度很快。当它接收到一个键值对操作后,能以微秒级别的速度找到数据,并快速完成操作。
这是因为它是
内存数据库,
所有操作都在内存上完成,内存的访问速度本身就很快。
另一方面,还要归功于它的数据结构。因为键值对是按一定的数据结构来组织的,操作键值对最终就是对数据结构进行增删改查操作,所以高效的数据结构是 Redis 快速处理数据的基础。
Redis有五种数据类型:
字符串 String、列表 List、哈希 Hash、集合 Set 和有序集合 Sorted Set。这几种数据类型也是数据的保存形式。那么它们底层是怎么实现的呢?
简单说,底层的数据结构可以分为 6 种,分别是
简单动态字符串、双向链表、压缩列表、哈希表、跳表
和
整数数组
。
由图可知,String 类型的底层实现只有一种数据结构,也就是简单动态字符串。而 List、Hash、Set 和 Sorted Set 这四种数据类型,都有两种底层实现结构。通常情况下,我们会把这四种类型称为集合类型,它们的特点是
一个键对应了一个集合的数据
。
键和值用什么结构存储?
为了实现键到值的快速访问,Redis 使用的是
哈希表
来保存键值对。
一个哈希表,就是一个数组,数组中的每个元素称为一个哈希桶。可以说一个哈希表由多个 哈希桶组成,每个哈希桶保存了键值对的数据。
有时 Redis 写入大量数据时,保存速度也可能会变慢,这是因为哈希表可能发生冲突问题,rehash 可能会带来操作阻塞。
这里说到的
哈希冲突,
是指两个 key 的哈希值和哈希桶计算对应关系时,正好落在了同一个哈希桶中。
在 Redis 解决哈希冲突的方法之一是,链式哈希,就是
指同一个哈希桶中的多个元素用一个链表来保存,它们之间用指针连接。
为什么 Redis 的访问速度也可能会很慢?如果哈希表里写入的数据越来越多,哈希冲突可能也会越来越多,这就会导致某些哈希冲突链过长,进而导致这个链上的元素查找耗时长,效率降低。
redis
文章转载自
白杨的梦呓
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨