论文部分内容阅读
随着数据规模的不断扩大和用户数量的急剧增加,传统的结构化数据库访问面临的压力越来越大,提高MySQL等结构化数据库的读写性能成了一个亟待解决的问题。Redis内存数据库将所有数据放于内存中进行管理,大大提高了数据访问的性能,适用于数据缓存管理。在Redis中设计缓存策略实现结构化数据的缓存对减轻MySQL数据库访问压力和提高读写性能具有重要的理论意义和实用价值。在对结构化数据的数据特征、存取过程深入分析的基础上,使用结构化数据库和代理服务器的架构,并在代理服务器上部署了Redis内存数据库,在Redis上设计并实现了针对结构化数据的缓存系统。针对部分查询结果集过于庞大的情况,设计了一种基于用户查询频率、读写比例等行为的前缀缓存方法,缓存块中仅仅缓存前缀部分数据。当用户实际需求增加时,即时扩大缓存块,补充用户需求的数据;当用户对该块数据需求减少时,则采用惰性更新方案设置待更新标志,等待内存不足时统一进行内存空间的压缩。该方法不仅可以更好满足用户需求,还可以在内存不足时释放大量内存空间,降低缓存替换的概率。当缓存空间不足时,系统还提出了针对查询结果集类型的自适应缓存替换算法,将Hybrid替换算法进行改进并和LFU替换算法相结合,以更好满足结构化数据缓存的实际需求。该系统基于用户的实际查询需求,充分利用Redis内存数据库良好的读写性能,更高效地使用内存空间,从而提高了缓存系统的性能。通过设计实验对缓存系统的各个功能模块进行测试,结果表明,该系统通过前缀缓存策略和缓存块压缩方案,提升了缓存块个数,从而提高了缓存命中率和字节命中率,具有一定的应用价值。