基于Redis技术的页面缓存研究_第1页
基于Redis技术的页面缓存研究_第2页
基于Redis技术的页面缓存研究_第3页
基于Redis技术的页面缓存研究_第4页
基于Redis技术的页面缓存研究_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    基于redis技术的页面缓存研究    秦溧艾青摘要:随着互联网业务的逐渐扩大,用户对相同数据访问的相对集中,从而出现关系型数据库管理系统负担加重,数据库响应效率低下,浏览器上响应延迟等重大问题。基于此,提出采用redis高性能分布式内存缓存服务器的这一技术,来解决因数据量过大导致页面响应延迟的问题。通过实验以及和传统关系型数据库对比的结果表明,利用缓存技术查找数据,可以在一定程度上减少对数据库的访问,同时加快web等应用的响应速度,提高用户体验感。关键词:redis;sql;缓存;数据库:tp311.5:a目前我们所设计的系统采用的是关系型数据

2、库,将数据存储到该系统中,再通过服务器从中获取数据,并在浏览器上显示出来。但随着数据量逐渐增大,用户度对相同数据访问的集中,就会出现关系型数据库管理系统负担加重,数据库响应效率低下,浏览器上响应延迟等重大问题。特别是当我们在开发web应用时,前端界面成为了不可获取的一部分,但是每次用户对我们的网页进行访问时,都要重新加载一次静态资源,从而加重服务器的负担,造成网上显示延迟等问题,在很大程度上影响了用户体验感。基于以上问题,本文结合redis高性能分布式内存缓存服务器技术,对页面进行分布式管理。并通过实验和对比证实了利用缓存技术查找数据,可以在一定程度上减少对数据库的访问,同时加快web等应用的

3、响应速度,提高用户体验感。1 redis概述1.1 redis的特性redis是一个基于键值对的存储结构的系统,也是类属于nosql的一种,它可以利用多种不同的键值对数据类型来满足于不同的存储需求,redis优势主要包括:(1)性能高。由于redis是nosql数据库,redis的所有操作都是直接操作于内存之中,它的运行速度相比较于mysql这一类传统的关系型数据库,就好比是在内存中进行读写和在硬盘中进行读写的差距;(2)可使用的数据类型非常丰富,redis能够支持二进制的hash,set,string,list等数据类型的操作;(3)支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么

4、全部执行,要么全部不执行;(4)丰富的特性,redis还支持publish/subscribe,通知,key过期等等特性。基于上述优势,redis技术最大的应用场景就是用来做缓存。缓存技术可以大大减轻服务器的压力,减少数据丢失,提高系统中数据的一致性和完整性。1redis对于不同的常见数据类型来说,指令既有相同的,也有针对不同数据类型的特殊指令。同时redis具有java版本客户端jedis,jedis拥有java的主要特性之一多线程处理,通过线程来优化系统资源,通过线程操作redis的数据,并根据实际情况对线程进行回收,极大的提高的redis的使用效率。在提高数据获取速度时,我们需要用一些缓

5、存技术,redis的最大优势在于可将数据缓存到内存并能够分片存储,同时拥有很高的读写效率。2在这个基础之上,redis还可以使用各种不同方式的排序,以此来满足各种不同业务的需求,为了不影响查询数据的速度,数据一般都是先在内存中缓存下来,区别就是redis会在经过一段周期后的将更新后的数据重新在磁盘中进行写入和覆盖,又或者会把进行修改的操作写入记录文件中,再将此文件追加到之前的記录文件中。前者为默认的rdb存储模式,所谓rdb,就是将数据写入到一个临时的文件。等到持久化结束之后,用这个临时文件,替换掉上次旧的持久化的文件,从而达到恢复数据的目的。优点,是只需要通过使用单独子进程来进行持久化操作,

6、并不需要主进程进行任何的io操作,从而保证了redis的高效性;缺点,rdb会间隔一段时间再进行持久化操作,如果在持久化期间,redis发生了故障,会出现数据的丢失情况,所以这种方式更适合对数据要求不严谨的时候。由于只需要对界面的数据进行缓存,所以本文采用rdb存储模式技术便可达到需求。1.2 redis存储机制其存储机制默认设置为如果更改了一个key,则间隔900秒之后进行一次持久化存储。如果更改了十个key则300秒之后进行一次持久化存储,如果更改一万个key则自修改之时起,一分钟之后进行一次持久化存储,持久化完成后,将临时文件替换掉旧的rdb。使用rdb恢复数据也非常简单,实际上只需重启

7、redis服务即可完成。启动的时候,redis的sever会从dump.rdb文件中先同步数据,第二种方式是aof,是将执行过的指令记录下来,数据恢复时,按照从前到后的顺序再将指令执行一遍从而实现数据的恢复。优点,可以保持更高的数据完整性。例如,如果设置追击file的时间是一秒,那么一旦redis发生了故障,最多只会丢失那一秒的数据。且如果日志写入不够完整,支持通过redischeckaof来进行日志修复,aof文件没备注right之前可以删除其中的某些指令。缺点,aof比rdb文件大,且恢复速度慢,因为它是以记录操作数据为主的。此外,通信业务的数据大部分都是数字信息,如手机号码、imsi码等

8、,采用az,az,09组成的62进制替代10进制可以大大的节约内存,手机号码可以从11位压缩到6位,imsi码可以从15位压缩到9位。由此可以进一步节约内存。3redis的应用目前已经十分广泛,国内的淘宝,新浪,以及国外的github等都在使用redis的缓存服务。当然,在使用redis缓存技术之前,必须搭建分布式数据存储系统。为了进一步提高redis的分布式数据存储的效率,必须同时要考虑到数据库的负载情况,因此在开发时还需要额外搭建另一个分布式存储系统。传统的关系型数据库采用中央处理器或者是内存的使用来进行代价的评估,但对于这种系统的存储方式和数据类型往往不是很全面。在实际运行的过程中,对多

9、类资源数据进行实时的统计,当完成对执行处理任务的线程后,完成对永不服务的主线程的响应,再以此为基础,确定各个影响数据存储有效性的影响因素,实现对分布式数据的可靠性评测和存储。42 采用redis进行页面缓存的设计方案,以及后台配置文件的编写2.1 redis解决页面缓存问题的方案设计redis作为一个nosql数据库,它的简单易用是它最主要的特点。它的本质其实是和布隆过滤器5类似,只是作为一个服务器和数据库之间的一个缓冲区,当用户要访问数据库时,先访问redis,如果redis中有所需要的数据,便直接取出,返回到服务器;如果没有,便去访问数据库,将数据库中的数据返回给服务器,同时将数据保存一份

10、到redis中,便于下次的取和用。根据此特性,我可以解决页面缓存的问题。实际上,我们的前端界面的静态资源,对用户体验感影响最大的,便是我们界面上的图片信息,因为这是用户最容易注意到的,也是经常在改变的,所以我们需要将界面上的图片信息,缓存到我们的redis数据库中。由于redis存储机制是以键值对的形式进行存储的,因此,我们只需要通过后端来实现,将图片的索引作为键,将图片的路径等信息以json的形式作为值缓存到redis中,从而达到无需访问数据库,便可加载图片的目的。当然,如果我们后期需要对图片进行更新,用户也只需要重新加載一次页面便可更新redis中的缓存信息。2.2 redis缓存技术设计

11、流图该图用于展示服务器在进行数据存取时和redis以及数据库之间的交互流程,如图1所示,当服务器要获取相应的数据时,先从redis中获取,如果命中,则直接返回给服务器;如果未命中,则再从数据库中获取,获取到数据后,返回给服务器,并更新redis中的内容。2.3 redis配置文件信息配置使用redis所需要的相关信息,如图2所示:(1)spring.redis.database:数据库索引,在使用redis时,由于redis有16个内置库,需要标明使用哪个数据库,默认是用的是下标为0的库,这里设置的是索引为1的库;(2)spring.redis.host:redis服务器地址,由于redis是

12、分布式的缓存数据库,所以需要单独部署到一台计算机上,这里部署到的是linux虚拟机上,虚拟机的ip地址是:192.168.220.128,所以redis的服务器地址是:192.168.220.128;(3)spring.redis.port:redis服务器连接端口,redis的配置文件中,端口号默认配置为6379;(4)spring.redis.password:redis服务器连接密码,其实redis默认连接是没有密码的,这里为了保险起见在redis的配置文件中设置连接redis的密码为:imooc;(5)spring.redis.pool.maxactive:连接池最大连接数,这里可以设

13、置同时访问redis的连接数量,如果设置为负值则表示没有连接的限制;(6)spring.redis.pool.maxwait:连接池最大阻塞等待时间,是指建立连接的最大等待时间,毫秒为单位,如果是负值,则表示永远等待;(7)spring.redis.pool.maxidle:连接池最大空闲连接,如果超过最大空闲连接数,会将对象丢弃;(8)spring.redis.pool.minidle:连接池最小空闲连接,如果小于最小空闲连接数,会创建新的连接对象,以此来保持空闲连接数量大于等于最小空闲连接数;(9)spring.redis.timeout:连接超时时间。3 实验结果及分析本文通过采用red

14、isdesktopmanager图形化redis管理工具来对实验结果进行分析和研究。如图3所示,在db0这个数据库中,有8个数据键,这8个数据键分别对应8种不同类别的图片资源信息,如表1所列:这样,在获取value1所对应的值时,只需要在后端通过键shopcategorylist_allfirstlevel,便可直接在redis中获取到值,而无需再次通过数据库进行查询操作,极大程度上改善了系统的效率。将不使用redis的传统关系型数据库和采用redis的数据库进行对比,会发现采用redis有以下好处,如表2所列:4 结语基于redis技术的分布式数据存储方法,可以解决因数据量逐渐增大,用户对相同数据访问的集中,而出现关系型数据库管理系统负担加重,数据库响应效率低下,浏览器上响应延迟等重大问题。本文通过实验以及对比证实了可以利用缓存技术查找数据,可以在一定程度上减少对数据库的访问,同时加快web等应用的响应速度,提高用户体验感。参考文献:1宁方美,贺雪梅,牟晋娟.springboot集成redis缓存技术在企业一卡通系统中的应用j.电子技术与软件工程,2019(24):133134.2叶朋.网站访问性能优化的研究与实现d.哈尔滨理工大学,2020.3徐茂红,王飞,张明

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论