面试题答案
一键面试常见实现方法
- 使用数据库的触发器:在MySQL数据库表上创建触发器,当数据发生插入、更新或删除操作时,触发器被触发。
- 通过应用程序处理:在应用程序的业务逻辑中,当执行数据库的写操作(插入、更新、删除)之后,紧接着执行Redis缓存的更新操作。
原理
- 数据库触发器原理:当MySQL执行特定的数据库操作(如INSERT、UPDATE、DELETE)时,与之关联的触发器会自动执行。触发器可以在操作之前(BEFORE)或之后(AFTER)执行。在AFTER触发器中,可以编写逻辑来通知Redis进行数据更新。例如,通过调用Redis的API,根据变化的数据的主键,删除或更新Redis中对应的缓存数据。这样,当数据库数据变化时,立即触发对Redis缓存的更新,确保缓存与数据库数据的一致性。
- 应用程序处理原理:在应用程序代码中,无论是使用ORM框架还是原生的数据库连接操作,在完成对MySQL数据库的写操作后,通过调用Redis客户端库的方法,根据数据库操作涉及的数据主键等信息,对Redis中的缓存数据进行相应的删除或更新操作。以更新操作为例,先执行MySQL的UPDATE语句更新数据库记录,然后使用Redis的SET命令,将更新后的数据重新写入Redis缓存,保证缓存数据和数据库数据保持同步。