其实你这个问题千言万语是一句话:如何保证Redis跟数据库的一致性嘛。
各大公司都是有那种对账的。数据一致性校验平台这种中间件来去确保二者之间数据的一致性。
你可以这样理解,就是我们在这个平台上面呢会基于代码呢去实现一个规则,就是说我去监听数据库的binlog日志,然后会对binlog日志进行实时解析,跟目标数据源进行对比,以此呢来判断数据是否一致。
那放到你这个场景里面呢,就是说每当一个用户的优惠券落库的时候呢,那它会产生对应的log日志,我们就把这个日志捞出来,从log日志里面取出信息拼接Redis的对应key,查一遍Redis。
如果radius里面有数据,那就说明c口跟log的数据是一致的,如果没有就说明他们两个有一端不可信嘛,那你就选择可信的一端,对另外一端进行数据补偿就好。