




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、7.3 键值对数据库Redis数据存储管理Redis的系统架构Redis的API使用【本节学习目标】一、Redis的存储管理Redis是一个内存数据库,内存中的数据划分: 1)数据:数据库中的数据占用的内存会统计在used_memory中;2)进程运行的内存:代码、常量池等等要占用内存,子进程运行。3)缓冲内存:4)内存碎片:1. 数据存储结构细节(1)dictEntry:Redis字典中数据项,(2)Key:dictEntry中的Key的值(3)redisObject:Value(“world”)存储在redisObject中。不论Value是5种类型的哪一种,都是通过redisObject
2、提供Value的5种类型的存储;(4)内存分配器:无论是DictEntry对象,还是redisObject、SDS对象,都需要内存分配器(如jemalloc)分配内存进行存储。2. 对象编码说明对象的存储方式redisObject对象存储5中类型,该对象提供了Redis对象的类型、内部编码、内存回收、共享对象等功能。使用了SDS(简单动态字符串Simple Dynamic String)代替C字符串。Redis支持5种对象类型,每种结构至少两种编码;好处:接口与实现分离,当需要增加或改变内部编码时,用户使用不受影响,另一方面根据不同的应用场景切换内部编码,提高效率。二、Redis数据库的系统结
3、构集群分布式数据处理: 提供在多个Redis间节点间共享数据的程序集。Redis 集群的数据分片,引入了哈希槽的概念。 集群有16384个哈希槽 (hash slot),每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽算法:CRC16(key) % 16384。例如当前集群有3个节点,节点 A 包含 0 到 5500号哈希槽,节点 B 包含5501 到 11000 号哈希槽,节点 C 包含11001 到 16384号哈希槽。1. 集群结构Redis cluster集群中的每个节点都是平等的关系,每个节点都保存各自的数据和整个集群的状态。每个节点
4、都和其他所有节点连接,。数据存在一个 master 节点,master 和其对应的salve 之间进行数据同步。当读取数据到对应的 master 。Master挂掉,启动一个对应的 salve 节点,充当 master 。客户端与redis节点直连,连接集群中任何一个可用节点即可。redis-cluster把所有的物理节点映射到0-16383槽上,cluster 负责维护nodeslotvalue。2. 主从复制在从节点配置文件加上从服务器的IP地址和端口号。通过主服务器持久化的rdb文件实现的。主服务器先导出内存快照文件,然后将rdb文件传给从服务器,从服务器根据rdb文件重建内存表。Red
5、is 支持简易的主从复制(master-slave replication)功能, 让从服务器成为主服务器的精确复制品。3. 主从复制过程1)从服务器,连接到主服务器, 发送SYNC2)主服务器接受SYNC,fork一个子进程,把内存数据保存为文件,发送给从服务器3)主服务器子进程做数据快照时,父进程继续接收client端写数据,新据放待发送缓存队列中4)从服务器接收内存快照,清空内存数据,重建内存表数据结构5)主服务器发送缓存队列中保存的子进程快照期间改变的数据给从服务器,保存数据一致性6)主服务器后续接收的数据,都会通过步骤1建立的连接,把数据发送到从服务器。4. 复制特点 (1)一个主服
6、务器可以有多个从服务器。(2)从服务器也可以有自己的从服务器。(3)支持异步复制和部分复制。(4)主从复制功能提升系统的伸缩性和功能集群中的每个节点都有1个至N个复制品,一个为主节点,其余的为从节点,主节点下线了,设置一个新主节点1、某一个主节点和他所有的从节点都下线的话,集群停止工作2、异步复制可能会丢失写命令-网络原因。5. cluster所有的节点相互连接, 消息通信通过集群总线通信,集群总线端口大小为客户端服务端口+10000 节点与节点之间通过二进制协议进行通信; 客户端和集群节点之间通信-文本协议;集群节点不会代理查询; 数据按照Slot存储分布在多个Redis实例上; 集群节点挂
7、掉会自动故障转移;无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。6. 事务与锁 MULTI、 EXEC 、 DISCARD 和WATCH四个命令事务开启与取消: MULTI 开启一个事务。EXEC 顺序执行事务队列中的命令。DISCARD 取消事务。乐观锁: WATCH 对key值进行锁操作。7. 持久化机制 redis内存数据库, 将内存中的数据周期性的写入磁盘或者把操作追加到记录文件中-redis的持久化。redis支持两种方式的持久化: RDB方式和AOF方式RDB方式是将内存中的数据的快照以二进制的方式写入名字为dump.rdb的文件中。AOF方式,AOF
8、持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。8. 发布与订阅消息类似于聊天,是一种消息通信模式。发送者(发送信息的客户端)不是将信息直接发送给特定的接收者(接收信息的客户端), 而是将信息发送给频道(channel), 然后由频道将信息转发给所有对这个频道感兴趣的订阅者。SUBSCRIBE 、 UNSUBSCRIBE 和 PUBLISH 三个命令实现了消息的发布与订阅。9. Redis存储机制RDB AOFRedis存储机制分成两种Snapshot 和 AOF。数据存储在内存中。Snapshot工作原理: RDB文件)。 AOF 工作原理: 文件1
9、.性能:Snapshot方式的性能是要明显高于AOF方式的,2.数据安全:AOL数据安全性高于Snapshot存储,Redis中的Rewrite的功能10. 内存优化Redis内部有很多的数据类型,内部优化的一些细节点: 1. String和数字,内部会构建一个数字池,默认是10000,这个池子的数字就只需要用一个简单的索引来引用 2.复杂类型的存储优化,比如Map,List,Set等,根据实际场景来定,如果这些集合所包含的Entry不多,Value不是很长的情况下,Redis内部使用紧凑格式来存储数据三、Redis数据库的APIredis-cli进入shell,可以用命令Config, key 可以获取配置信息或键值的情况。 对string类型的操作可以用set, get, incrlists列表是链表,LPUSH、RPUSH、LRANGE等, 集合set一种无序的集合,sadd、删除已有元素、取交集、sunion、取差集等。sorted sets有序集合中的每个元素都关联一个序号(score),zsets,操作有zrange、zadd、zr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业简单聘用合同
- 外墙内墙施工合同范本
- 2025年二建全科-公式
- 过桥担保合同范本
- 2025 VII 策划与执行合同协议书
- 云南大学《中国当代经典诗歌鉴赏》2023-2024学年第二学期期末试卷
- 德阳农业科技职业学院《民舞-运动舞蹈技术技巧》2023-2024学年第一学期期末试卷
- 2024-2025学年内蒙古包头市昆都仑区下学期初三化学试题第四次月考考试试卷含解析
- 安徽矿业职业技术学院《数字影像创作》2023-2024学年第一学期期末试卷
- 西南财经大学天府学院《食品工艺学》2023-2024学年第二学期期末试卷
- 原发性高血压护理措施
- 人工智能基础(Python实现)-课件 第8章 生成式大模型应用
- 2024年安徽宁马投资有限责任公司招聘10人笔试参考题库附带答案详解
- 纪检监察审查调查业务培训
- 《变频器原理及应用》课件
- 摄像服务行业品牌建设研究-深度研究
- 人像摄影基础课件
- 网络安全题库及答案(1000题)
- 《招标投标法》知识学习考试题库300题(含答案)
- 城市环境卫生各类人员配备定额
- 2025年北京农商银行招聘笔试参考题库含答案解析
评论
0/150
提交评论