读取数据
先读取缓存,如果缓存无,读取数据库,并写入缓存
更新数据
先更新数据库,然后删除缓存
先更新数据库再删除缓存还是会出现一个极端现象,比如:一个线程更新数据库,这个线程更新完了,还没有删除缓存。另一个线程来查了,就导致数据不一致了。
为了解决上面出现的问题,可以用双删来解决。更新之前删除缓存,更新数据库之后再删除缓存
先读取缓存,如果缓存无,读取数据库,并写入缓存
先更新数据库,然后删除缓存
先更新数据库再删除缓存还是会出现一个极端现象,比如:一个线程更新数据库,这个线程更新完了,还没有删除缓存。另一个线程来查了,就导致数据不一致了。
为了解决上面出现的问题,可以用双删来解决。更新之前删除缓存,更新数据库之后再删除缓存