NutzCN Logo
问答 Redis缓存删除数据与数据库假删除(通过字段标识)
发布于 2956天前 作者 william-xian 2288 次浏览 复制 上一个帖子 下一个帖子
标签:

实际项目中很少有真的删除数据的情况。比如用户表tbl_user有一个默认字段isDeleted,当我们要删除这条数据时,实际执行的是

update tbl_user set isDeleted = 1 where id=xxx
那么,在使用Redis缓存插件时就无法做到这一点了。
https://github.com/nutzam/nutzmore/tree/master/nutz-plugins-daocache

3 回复

这跟redis没什么关系,这是daocache的逻辑如下:

对一个表进行非select操作, 清空该表的缓存

然后回到你提到的字段标示, 因为改了表里面的数据, 例如下面的SQL的结果集全都要变

select * from tbl_user where isDeleted=1;
select * from tbl_user where isDeleted=1 or xxx = 100;
select * from tbl_user where isDeleted=1 or xxx = 100;
select * from tbl_user where isDeleted !=1 and xxx = 10;

谢谢。没太看明白,我再看看吧。

假删除,一样改了表里面的数据,对daocache来说依然要清除缓存

添加回复
请先登陆
回到顶部