thinkphp5模型如何使用redis操作数据库CURD操作

很多人都说建议用ThinkPHP5的模型事件after_write控制缓存的创建和更新,那么如何去做呢?请贴代码,谢谢!同时我也知道在config.php配置文件中将ca... 很多人都说建议用 ThinkPHP5 的模型事件 after_write 控制缓存的创建和更新,那么如何去做呢?请贴代码,谢谢!
同时我也知道在config.php配置文件中将cache改成redis的配置
直接使用Db的方法,更新及查询的方法我知道
Db::table('think_user')->cache('user_data')->update(['id'=>1,'name'=>'thinkphp']);
Db::table('user')->cache(true)->find(1);
那么使用model 的情况下,如何进行更新缓存 和删除缓存呢,比如 $this->data($param)->save(); //新增操作
$this->save($param,['id'=>1]);//更新操作
很多人都说建议用 ThinkPHP5 的模型事件 after_write 控制缓存的创建和更新,那么如何去做呢?请贴代码,谢谢
展开
 我来答
谢兴桥
2018-06-08 · TA获得超过387个赞
知道小有建树答主
回答量:591
采纳率:33%
帮助的人:247万
展开全部
模型中添加如下代码,可实现更新或插入前删除缓存:
protected static function init()
{
TurnGiftSetting::beforeInsert(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeUpdate(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});

TurnGiftSetting::beforeDelete(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
TurnGiftSetting::beforeWrite(function ($model) {
$redis = new Redis(config('redis'));
$redis->rm(self::$redisKey);
});
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式