redis跟mysql的结合方式

通用思路:

查询先查redis没有在去查mysql,新增或修改直接操作mysql然后更新redis.

以用户管理为例,我查询一个用户,我根据用户名去查redis有就返回,没有再根据用户名去查询mysql;修改我根据用户名去数据库查询数据,然后修改保存数据库,如果保存成功在刷新redis.

进阶思路:

可以给自己的一个规定,给redis的数据一个标记位,或者说一个存key状态的标记位,这个标记位有过期时间。

不是写完数据库去写redis,而是写完数据库后,不更新redis,而是标记redis的里面的数据脏。

去读数据的时候,先查看redis标记位状态,如果标记位为OK,就直接从redis的数据里面显示,如果redis标记位不存在,或者为脏Dirty,说明redis被重启过,没数据,或者数据需要强制更新,就从mysql中拉出数据显示,然后顺便更新redis,然后把标记位置为OK,设好过期时间。

并发小的情况:

利用redis做存储,无论查还是修改都操作redis,然后定期去将redis中的数据同步到mysql中。不知道该种方法可不可行。

用过类似的方案 增删改查都操作redis 然后把数据和操作发到一个队列 起一个服务消费队列去更新数据库 这样看起来像是拿数据库作为redis的备份了……

可以,但是这些情况一般是像抢红包才这样做。 平时增删改,如果并发量不大,还是直接插入到数据库好

使用不是滥用:

 只有性能慢的地方才去使用redis, 不应该滥用,否则维护成本太高.

数据修改或删除后找到删除受影响的redis数据.

优化先从 mysql 索引开始, 不能优化了再去考虑缓存.

你可能感兴趣的:(redis跟mysql的结合方式)