一个接口,写入mysql之后要写入redis,但是在写入redis的时候如果服务器断电了怎么办?这时候数据不是就出现问题了吗

一个接口,写入mysql之后要写入redis,但是在写入redis的时候如果服务器断电了怎么办?这时候数据不是就出现问题了吗?业内对这种问题一般是无视吗?

很正常啊,本来redis就是缓存数据中间件而已。
一般是第一次查询的时候,同步到redis中的。
使用的时候,都是先查redis,如果redis中没有,再从数据库中查。

如何解决数据库与缓存一致性问题

1.先更新数据库,再更新缓存。 2个线程,都更新了数据库,由于网络原因,A可能比B晚更新缓存,会导致不一致。

2.先删除缓存,在更新数据库。A先删除缓存,在更新数据库,b发现缓存没有了,就查询数据库,将旧值放入了缓存。

(读比写快的多)

3.先更新数据库,在删除缓存。刚开始没有缓存,A先读数据旧值,b更新数据,删除缓存,A更新缓存。读比写块,一般不会发生。

最经典的KV、DB读写模式使用的就是第三种

你数据库都存了数据了,即使rides的数据丢失也没关系啊

我理解redis没有数据,不就去数据库查吗?查出来的数据又继续放到了redis