所以我想这样是不是更靠谱一些,优化一下方案1:(1) 先设置过期时间为5s (保证缓存能存活一段时间,业务执行完后也能够保证redis短时间内过期,其他线程重新从数据库中读取,假如执行失败,直接放回给用户,更新失败),(2) 再更新数据库 (此前或期间B线程过来,会命中缓存,返回旧数据,)(3) 再更新缓存 ,同时更新过期时间 (假如执行成功第一步失效,过期时间恢复正常;假如失败,有第一步保底,做延迟删除,旧数据存活时间也只有5秒)
大家帮忙回答一下,我这种方案是否可行?