当前位置:主页 > 科技论文 > 计算机论文 >

基于内存的键值对缓存系统设计与实现

发布时间:2020-11-22 03:28
   随着网民人数的快速增长和移动互联网的蓬勃发展,传统的数据库产品由于磁盘较慢的读写速度,当其面对高并发的请求和海量的格式复杂多变的数据时越来越力不从心,特别是秒杀、一元抢购等新的业务场景的出现更是加剧了数据库在短时间内的负担,如何快速的响应用户的请求并降低数据库的访问压力是服务器后端业务中不得不面对的问题。针对服务器后端业务中瞬时高并发和海量数据查询时间较长等应用场景,设计并实现了基于内存存储的Armory键值对缓存系统,作为后端服务中应用层和数据层之间的缓冲层,对于用户查询的数据信息,如果缓存中存在则直接返回结果给用户,如果缓存中不存在才到数据库中查找,以此来提高数据查询的速度和效率。根据实际应用的需求可以将Armory缓存系统分为系统服务模块、数据持久化模块、主从复制模块三个部分,系统服务模块提供系统初始化、命令解析与执行、周期性任务和内存空间清理等基础的系统服务,数据持久化模块通过将缓存中的全部数据写入磁盘文件或者将对缓存数据造成改变的所有命令写入日志文件的方式来备份和恢复数据,主从复制模块通过将多台服务器节点组合在一起共同工作来提高系统的可用性和数据的安全性。由于采用内存作为存储介质,其读写速度比传统的磁盘高出至少一个数量级,大大的提高了数据量非常庞大时的查询速度,而且数据持久化的功能也解决了内存作为一种易失性存储介质断电后数据会全部丢失的问题。采用Armory缓存系统解决了后端服务中数据库导致的性能瓶颈问题,明显缩短了数据查询请求的平均响应时间,提高了整个后端服务的性能。
【学位单位】:华中科技大学
【学位级别】:硕士
【学位年份】:2018
【中图分类】:TP311.13;TP333
【部分图文】:

模型图,模型,数据,非阻塞


本章将简单介绍一下在系统实现过程中需要用到的一些重要的数据结构和技术,包括极大的提高了网络请求处理效率的 I/O 多路复用技术和安全高效的动态字符串、作为集合类型底层实现的跳跃表两种数据结构,以此作为后续研理论和实践基础。1 I/O 多路复用传统的 I/O 模型包括阻塞 I/O 模型和非阻塞 I/O 模型,如图 2-1 所示,对于阻 模型,如果请求的数据尚未到达,则系统会阻塞在那里,一直等到数据到达核将数据拷贝到缓存中然后返回;对于非阻塞 I/O 模型,如果请求的数据尚未则会立即返回一个标识信息,用户进程会检查该标识信息进而判断数据是否,如果数据未就绪系统会继续发送数据请求,直到数据到达后内核拷贝数据并成功标识[38-39]。

模型图,多路复用,模型,进程


于每一个进程都需要系统为其分配资源,假如同时有多个些进程分配大量内存,这将给很多配置不高的服务器带来程在切换时需要保存堆栈空间、上下文等信息,如此大量占用过多的系统资源,而且由于操作系统是采用时间片轮程数越多时平均分配给每个进程的时间片就越少,这样会低下[40]。决传统 I/O 模型在高并发的情况下效率低下的问题,操作系型(IO Multiplexing)[41]。如图 2-2 所示,I/O 多路复用模poll、epoll 的系统函数负责维护和轮询所有的文件句柄,通知用户进程,这样维护所有的连接请求只需要一个进程较多时可以明显的降低所需要的内存资源,同时系统调度

字符串,动态,字符串长度,语言风格


图 2-3 简单动态字符串和传统的 C 语言风格字符串相比,简单动态字符串具有如下四个优势:(1)获取字符串长度的时间复杂度为常数传统的 C 语言风格字符串要想获取长度只能遍历字符串数组,直到遇见空的结尾为止,该算法的时间复杂度为 O(N),当经常需要获取字符串长度时风格字符串的效率显然不高。对于简单动态字符串,要想获取其长度,只结构体中 length 字段的值即可,该算法时间复杂度为 O(1),这保证了在 A系统中获取字符串长度不会成为性能瓶颈。(2)避免缓冲区溢出C 语言风格的字符串由于不记录长度信息,除了获取字符串长度的时间复外,还很有可能导致缓冲区溢出。在 C 语言中,字符串操作函数中需要用对象的函数参数都是指针类型,由于指针类型只给出了内存地址信息而没
【参考文献】

相关期刊论文 前10条

1 刘磊;;淘宝开源KV结构数据存储系统Tair技术分析[J];电子商务;2016年03期

2 韩煜;张济国;张冬芳;李海涛;;一种基于二进制程序的安全加固系统设计和实现[J];信息安全与技术;2015年07期

3 陈勇;;探析目前对于移动互联网数据研究及对策[J];中国新通信;2015年11期

4 苑晓芳;刘志广;;Linux下基于TCP传输组件的实现[J];无线电通信技术;2014年04期

5 姜承尧;;高性能网站MySQL数据库实践[J];程序员;2013年09期

6 谷伟;陈莲君;;基于MySql的查询优化技术研究[J];微型电脑应用;2013年07期

7 王雅文;姚欣洪;宫云战;杨朝红;;一种基于代码静态分析的缓冲区溢出检测算法[J];计算机研究与发展;2012年04期

8 伍志聪;;MySQL数据库在中小型业务系统的应用[J];数字技术与应用;2011年11期

9 南轶;李先国;;基于.NET Cache+Memcached Web缓存技术的研究与应用[J];科学技术与工程;2011年31期

10 吕明育;李小勇;;NoSQL数据库与关系数据库的比较分析[J];微型电脑应用;2011年10期


相关硕士学位论文 前2条

1 李瑞;基于memcached分布式缓存系统的内存利用优化研究[D];华中科技大学;2015年

2 赵璐;阿里巴巴广告应用质量平台设计与实现[D];南京大学;2014年



本文编号:2894039

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2894039.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户6800d***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com