数据输出方法及装置制造方法及图纸

技术编号:8323506 阅读:197 留言:0更新日期:2013-02-14 01:16
本发明专利技术公开了一种数据输出方法及装置。该方法包括:步骤1,获取数据输出请求,判断存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,否则,判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果存在,则从数据文件中获取该输出数据并发送,否则,从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;步骤2,根据缓存时间戳、以及哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别是涉及一种数据输出方法及装置
技术介绍
在现有技术中,普通网页在处理时会尽可能的减少输出内容,以确保良好的用户体验,但是,在进行大数据量的网页输出时,例如,团购导航输出的数据量会随团购业务的不断扩展而逐步增加。如何保证数据的高时效性,减少输出时间,保证系统的高可靠性,是急需解决的问题。目前,在现有技术中,在网页输出数据量比较少的情况下,读取缓存时,会判断缓存状态,如果失效或不存在,将访问数据库获取新数据,并同时更新缓存。在输出数据量比较少时,这种解决方案是可以接受的,但当输出数据量不断增加后,输出消耗总时间显著增加,缓存访问并发访问次数增大,尤其是遇到并发访问加大时,同时缓存又失效,系统随时有宕机的可能性。
技术实现思路
本专利技术提供一种数据输出方法及装置,以在进行大数据量的网页输出时,保证数据的高时效性,减少输出时间,保证系统的高可靠性。本专利技术提供一种数据输出方法,包括步骤I和步骤2,其中,步骤I和步骤2为异步操作,具体地步骤1,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果数据文件中存在该输出数据,则从数据文件中获取该输出数据并发送,如果数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;步骤2,根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作,其中,哈希表中包括各个输出数据的标识信息和最后更新时间。优选地,存储空间具体包括内存、以及分布式缓存;缓存时间戳为预先设置的更新时间间隔;哈希表存储在内存中。优选地,步骤I具体包括步骤100,根据缓存时间戳、以及哈希表判断内存中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤101 ;步骤101,根据缓存时间戳、以及哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤103 ;步骤103,根据缓存时间戳、以及哈希表判断数据文件中是否存在相应合法的输出数据,如果存在,执行步骤107,否则,执行步骤104 ;步骤104,从数据库中读取相应的输出数据,判断输出数据是否合法,如果合法,则执行步骤105,否则,结束操作;步骤105,判断输出数据是否已发送,如果判断为是,异步执行步骤106,否则,执行步骤107 ;步骤106,跟据从数据库中读取的输出数据更新存储空间以及数据文件;步骤107 ;发送输出数据。优选地,根据缓存时间戳、以及哈希表判断内存、分布式缓存或数据文件中是否存在相应的合法的输出数据具体包括根据输出数据的标识信息判断内存、分布式缓存、或数据文件中是否存在相应的输出数据;如果存在,则从内存中读取哈希表,并根据标识信息查询哈希表,获取相应的输出数据的最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定输出数据不合法;如果时间和大于当前时间,则确定输出数据合法。优选地,步骤106具体包括步骤1061,启动同步锁机制,其中,同步锁机制为在同一时间内,只允许一个线程更新存储空间以及数据文件中相应的输出数据,其他线程等待;步骤1062,判断输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,执行步骤1603,否则,执行步骤1604 ;步骤1603,根据从数据库中读取的输出数据更新内存,执 行步骤1605 ;步骤1604,根据从数据库中读取的输出数据更新分布式缓存,执行步骤1605 ;步骤1605,根据从数据库中读取的输出数据更新数据文件。优选地,根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内具体包括从内存中读取哈希表,获取各个输出数据的标识信息和最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定与标识信息相对应的输出数据已不在有效期内,需要进行更新;如果时间和大于当前时间,则确定与标识信息相对应的输出数据在有效期内,不需要进行更新。优选地,上述方法还包括设置输出数据发送阈值;将发送的输出数据的大小与输出数据发送阈值进行比较,如果发送的输出数据的大小大于或等于输出数据发送阈值,则禁止发送输出数据;否则,继续发送输出数据。本专利技术还提供了一种数据输出装置,包括输出模块,用于获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果数据文件中存在该输出数据,则从数据文件中获取该输出数据并发送,如果数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从数据库中读取的输出数据异步更新存储空间以及数据文件;更新模块,用于根据预先设置的缓存时间戳、以及存储在存储空间中的哈希表判断保存在存储空间和/或数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从数据库中读取相应的输出数据,并根据从数据库中读取的输出数据更新存储空间和/或数据文件,如果判断为是,结束操作,其中,哈希表中包括各个输出数据的标识信息和最后更新时间。优选地,存储空间具体包括内存、以及分布式缓存;缓存时间戳为预先设置的更新时间间隔;哈希表存储在内存中。优选地,输出模块具体用于根据缓存时间戳、以及哈希表判断内存中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,根据缓存时间戳、以及哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,根据缓存时间戳、以及哈希表判断数据文件中是否存在相应合法的输出数据,如果存在,发送输出数据,否则,从数据库中读取相应的输出数据,判断输出数据是否合法,如果不合法,结束操作,否贝U,判断输出数据是否已发送,如果判断为是,异步跟据从数据库中读取的输出数据更新存储空间以及数据文件,否则,发送输出数据;输出模块具体用于根据输出数据的标识信息判断内存、分布式缓存、或数据文件中是否存在相应的输出数据;如果存在,则从内存中读取哈希表,并根据标识信息查询哈希表,获取相应的输出数据的最后更新时间;将最后更新时间加上缓存时间戳,获取时间和,将时间和与当前时间进行比较,如果时间和小于或等于当前时间,则确定输出数据不合法;如果时间和大于当前时间,则确定输出数据合法;输出模块具体用于启动同步锁机制,其中,同步锁机制为在同一时间内,只允许一个线程更新存储空间以及数据文件中相应的输出数据,其他线程等待;判断输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,根据从数据库中读取的输出数据更新内存,并根据从数据库中读取的输出数据更新数据文件,否则,根据从数据库中读取的输出数据更新分布式缓存,并根据从数据库中读取的输出数据更新数据文件;更本文档来自技高网...

【技术保护点】
一种数据输出方法,其特征在于,包括步骤1和步骤2,其中,所述步骤1和步骤2为异步操作,具体地:步骤1,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送所述输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果所述数据文件中存在该输出数据,则从所述数据文件中获取该输出数据并发送,如果所述数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从所述数据库中读取的输出数据异步更新所述存储空间以及所述数据文件;步骤2,根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从所述数据库中读取相应的输出数据,并根据从所述数据库中读取的输出数据更新所述存储空间和/或所述数据文件,如果判断为是,结束操作,其中,所述哈希表中包括:各个输出数据的标识信息和最后更新时间。

【技术特征摘要】
1.一种数据输出方法,其特征在于,包括步骤I和步骤2,其中,所述步骤I和步骤2为异步操作,具体地 步骤1,获取数据输出请求,判断预先设置的存储空间中是否存在相应合法的输出数据,如果存在,则发送所述输出数据,如果不存在,则判断预先设置在预定服务器中的数据文件中是否存在相应合法的输出数据;如果所述数据文件中存在该输出数据,则从所述数据文件中获取该输出数据并发送,如果所述数据文件中不存在该输出数据,则从数据库中读取该输出数据并发送,并根据从所述数据库中读取的输出数据异步更新所述存储空间以及所述数据文件; 步骤2,根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内,如果判断为否,则从所述数据库中读取相应的输出数据,并根据从所述数据库中读取的输出数据更新所述存储空间和/或所述数据文件,如果判断为是,结束操作,其中,所述哈希表中包括各个输出数据的标识信息和最后更新时间。2.如权利要求I所述的方法,其特征在于, 所述存储空间具体包括内存、以及分布式缓存; 所述缓存时间戳为预先设置的更新时间间隔; 所述哈希表存储在所述内存中。3.如权利要求2所述的方法,其特征在于,所述步骤I具体包括 步骤100,根据所述缓存时间戳、以及所述哈希表判断内存中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤101 ; 步骤101,根据所述缓存时间戳、以及所述哈希表判断分布式缓存中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤102 ; 步骤102,根据所述缓存时间戳、以及所述哈希表判断所述数据文件中是否存在相应合法的输出数据,如果存在,执行步骤106,否则,执行步骤103 ; 步骤103,从数据库中读取相应的输出数据,判断所述输出数据是否合法,如果合法,则执行步骤104,否则,结束操作; 步骤104,判断所述输出数据是否已发送,如果判断为是,异步执行步骤105,否则,执行步骤106 ; 步骤105,跟据从所述数据库中读取的输出数据更新所述存储空间以及所述数据文件; 步骤106;发送所述输出数据。4.如权利要求3所述的方法,其特征在于, 根据所述缓存时间戳、以及所述哈希表判断内存、分布式缓存或数据文件中是否存在相应的合法的输出数据具体包括 根据输出数据的标识信息判断所述内存、所述分布式缓存、或所述数据文件中是否存在相应的输出数据;如果存在,则从所述内存中读取所述哈希表,并根据所述标识信息查询所述哈希表,获取所述相应的输出数据的最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定所述输出数据不合法;如果所述时间和大于所述当前时间,则确定所述输出数据合法; 所述步骤106具体包括 步骤1061,启动同步锁机制,其中,所述同步锁机制为在同一时间内,只允许一个线程更新所述存储空间以及所述数据文件中相应的输出数据,其他线程等待; 步骤1062,判断所述输出数据的大小是否大于或等于预先设置的阈值,如果判断为是,执行步骤1603,否则,执行步骤1604 ; 步骤1603,根据从所述数据库中读取的输出数据更新所述内存,执行步骤1605 ; 步骤1604,根据从所述数据库中读取的输出数据更新所述分布式缓存,执行步骤1605 ; 步骤1605,根据从所述数据库中读取的输出数据更新所述数据文件。5.如权利要求3所述的方法,其特征在于, 根据预先设置的缓存时间戳、以及存储在所述存储空间中的哈希表判断保存在所述存储空间和/或所述数据文件中的各个输出数据是否处于有效期内具体包括从所述内存中读取所述哈希表,获取各个输出数据的标识信息和最后更新时间;将所述最后更新时间加上所述缓存时间戳,获取时间和,将所述时间和与当前时间进行比较,如果所述时间和小于或等于所述当前时间,则确定与所述标识信息相对应的输出数据已不在有效期内,需要进行更新;如果所述时间和大于...

【专利技术属性】
技术研发人员:张艳伟
申请(专利权)人:五八有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1