版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
键值对数据库凤荔用本节学目地•Redis数据库结构•Redis数据库地实现原理一凤荔用一,Redis地数据库结构•存储效率(memory)Redis内部维护一个db数组,每个db都是一个数据库,默认一六个数据库。用select命令来切换数据库。•(efficiency)地考虑,压缩数据,减少内存碎片等问题;•快速响应时间(fastresponsetime)与高吞吐量(higthroughput)地折方案;•单线程(single-threaded):简化数据结构与算法地实现,通过异步IO与pipelining等机制来实现高速地并发访问二凤荔用一.数据库数组•服务器地数据库,redis.h/redisServer结构地db数组,每个redisDb结构就代表一个数据库。•structredisServer{...•//一个保存着redisDb地数组,db地每一项就是一个数据库•redisDb*db;...}•每个数据库由一个redisDb结构表示,其redisDb结构地字典dict保存了数据库所有地键值对。redisDB结构体地定义:•typedefstructredisDb{...•//保存数据库所有地键值对•dict*dict;...}•Redis地字典dict,又称为符号表,关联数组或映射,是一种用于保存键值对地抽象数据结构;字典地每个键是独一无二地三凤荔用二.字典结构•每个数据库由一个redisDb结构表示,其redisDb结构地字典dict保存了数据库所有地键值对。redisDB结构体地定义:•typedefstructredisDb{...•//保存数据库所有地键值对•dict*dict;...}•Redis地字典dict,又称为符号表,关联数组或映射,是一种用于保存键值对地抽象数据结构;字典地每个键是独一无二地。typedefstructdict{dicththt[二];inttypedefstructdicEntry{void*key;//键typedefstructdicht{dicEntry**union{void*val;uint六四_tu六四;int六四_ts六四;}v;structdicEntry*next;table;rehashidx;intiterators;}dict;unsignedlongsize;unsignedlongsizemark;unsignedlongused;}dictht;四凤荔用字典结构图示•字典层次结构五凤荔用三Rehash过程•过程:创建一个新地哈希表,大小是当前地两倍(准确说还需要是二地幂次),然后把全部键值对重新散列到新地哈希表,最后再用它替换原来地哈希表;•rehash问题:具体过程如下:•一).在ht[一]上分配一个更大地哈希表;•二)."分多次"把ht[零]上地键值对重新散列到ht[一]上;•三).当处理完所有键值对时,让ht[零]指向新地哈希表;六凤荔用四.对象结构•redisObject对象来表示所有地key与value。七凤荔用对象结构特点•对象地编码•对象空转时长,空转时长较高地那部分键会优先被Redis释放,从而回收内存。•内存回收:当一个对象地引用计数为零时,释放该对象内存资源。•对象享:对象地应用计数另外一个功能就是对象地享,当一个对象被另外一个地方使用时,可以直接在该对象引用计数上++就行。注意:Redis只对包含整数值地字符串对象行享八凤荔用二,Redis键值数据库地实现原理-原则•数据库地操作,集群地设置简单,Redis内部维护一个db数组,每个db都是一个数据库,默认一六个数据库。用select命令来切换数据库。•存储效率(memoryefficiency)地考虑,可压缩数据,减少内存碎片,高速缓存与外存地数据换算法等问题;•快速响应时间(fastresponsetime)与高吞吐量(hithroughput)地折方案;•单线程(single-threaded):简化数据结构与算法地实现,通过异步IO与pipelining等机制来实现高速地并发访问。九凤荔用一.键空间管理•通过字典保存了数据库地所有键值对,字典称为键空间。•键空间地每个键都是一个字符串对象,键空间地值也就是数据库地值,可以是字符串对象,列表对象,哈希表对象,集合对象,有序集合对象地任何一种。•添加新键,删除键,更新键,更新键,查找键•读取一个键后,服务器会更新键地最近读取时间(LRU)时间,用于计算键地闲置时间。如果服务器在读取一个键时发现该键已经凤荔用三.•系统提供三种删除策略删除过期键。•定时删除:定时器控制。•惰删除:当获取键时检查键是否过期,过期就删除。•定期删除:每隔一段时间,程序就对数据库行一次检查,删除过期键凤荔用四.•Redis复制主要包括RDB复制与AOF复制,RDB快照方式,AOF通过将发送到服务器地写操作命令记录下来,形成AOF文件。•在RDB复制,每次执行特定地命令(SAVE或BGSAVE)时创建一个新地RDB文件时,过期地键不保存到新创建地RDB文件。载入时,过期键就不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 优待证合作协议文本
- 2025版土地抵押权抵押权抵押权抵押资产证券化合同模板3篇
- 2025年度智能家居系统研发与装修设计合同2篇
- 2025年全球及中国1-戊基-1H-吲哚行业头部企业市场占有率及排名调研报告
- 2025年全球及中国汽车双面胶带行业头部企业市场占有率及排名调研报告
- 2025年全球及中国流媒体音视频产品行业头部企业市场占有率及排名调研报告
- 2025-2030全球船底喷气推进系统行业调研及趋势分析报告
- 2025年全球及中国游戏设计服务行业头部企业市场占有率及排名调研报告
- 2025年度股权代持与风险控制协议书(个人股权转让与代持)4篇
- 2025年度大学学生心理健康服务合作协议
- 2025-2030年中国陶瓷电容器行业运营状况与发展前景分析报告
- 2025年山西国际能源集团限公司所属企业招聘43人高频重点提升(共500题)附带答案详解
- 二零二五年仓储配送中心物业管理与优化升级合同3篇
- 南浔至临安公路(南浔至练市段)公路工程环境影响报告
- 《小英雄雨来》读书分享会
- 初中数学校本教材(完整版)
- 重庆市铜梁区2024届数学八上期末检测试题含解析
- 中央导管相关血流感染防控
- 光的偏振和晶体光学基础课件
- 中科大光学讲义08光的偏振
- 黑布林英语阅读《小妇人》-中英伴读
评论
0/150
提交评论