作者回复: 👍🏻 对的,两个并发写去更新还存在一致性的问题。不过,在删除缓存后,记得读取数据需要加锁或延时等待,防止读取脏数据。
作者回复: 对的,这也是一种情况
作者回复: 👍🏻 存在并发更新时数据不一致问题
作者回复: 这是为了计算不同的位置,通过不同位置置1,得出一个数值。
作者回复: 最常用的就是使用同步锁或Lock锁实现。
作者回复: 没有理解错,锁和我文中提到的队列都是解决redis缓存数据一致性问题的方案,这种解决方案会带来一定的性能损耗
作者回复: 是的
作者回复: 初始化时将数据加载到bit array中
作者回复: 使用队列来异步更新数据,没有压力
作者回复: 对的
作者回复: 对的,如果两个并发写去更新还存在一致性的问题,还不如直接删除,等下次读取的时候再次写入缓存中。不过,在删除缓存后,记得读取数据需要加锁或延时等待,防止读取脏数据。
作者回复: 👍🏻 回答很全面
作者回复: 暂时没有想到更好的
作者回复: 通常我们是会指定一些静态资源文件上传到CDN上去,并且通过版本号来更新。例如,我们的js资源文件是 xxx001.js,如果我们更新了该资源文件,则将xxx002.js推送到CDN上,同时前端的访问路径也更新访问资源路径。