场景描述,redis中存放热门搜索关键字,每10分钟会对这部分数据进行更新操作,操作过程为,先删除再添加。而这部分数据访问量很大,如果在删除操作刚刚完成,添加操作没有进行时,有人访问,数据空白,该如何优化?
redis做cache就是会有这个。取决于你的业务逻辑,比如你可以先不删除,而是逐步更新,这样用户会访问到脏数据。
或者当redis中没有数据的时候,客户访问数据库来获取数据。
建议Redis内存上添加临界资源,即存一个带有有效期限的临界值,作为锁。当进行删除操作前,添加锁,添加完成后解除锁。即使程序报错,有效期后,也不影响后续的系统运行。需要代码请留邮箱
可以用redis事务
NineData 官网地址:https://www.ninedata.cloud/compare
NineData 是玖章算术旗下的多云数据管理平台,它是一款即开即用的数据管理 SAAS服务。当前 NineData 已经支持数十种常见同异构数据源(MySQL、SQLServer、CK等)之间的结构对比、数据对比及数据订正能力。NineData 结构及数据对比作为独立服务,可以灵活支持IDC、云主机自建及云托管数据源的数据一致性校验及快速修复。从使用体验、产品能力、稳定性及性能等维度综合来看,NineData 是一款综合实例比较强、比较难得的校验工具。