php memcache 同步,问下thinkphp 的memcache 同步更新问题

网上有了解到thinkphp 的memcache的设置方法,都是介绍了查询的时候先判断key值是否存在,如存在,直接调用数据,不存在再连接数据库取数据

那么问题来了thinkphp 的memcache 如何数据同步呢,就是数据更新删除修改的时候怎么样memcache缓存也同时更新呢?是不是要在系统增删改函数里删除相对应的memcache的key ,可是这个key 不知道怎么对应。。求思路

用触发器的话 感觉也好麻烦呀,有点乱。

回复讨论(解决方案)

更新数据库时,把对应key的memcache删除。

当读取数据时,如memcache中没有数据,则先从数据库读出,写入memcache

key是自己定义的。

如果你要把某个查询作为key

$sql = "select * from table";

$key = md5($sql);就可以了。

这个原理都明白,这是函数上不知道怎么写,以md5(sql)为键名,那么以后我碰到表 table的修改删除添加操作的时候,可否根据表名table找到其对应的key键名,然后进行相应的删除呢?应该有这样的函数吧,网上找不到,请指点。。

更新数据库时,把对应key的memcache删除。??

就是想问这个对应的key可以通过程序定位的然后再进行相应的删除吧?? 如果人工的话太费劲感觉也不实际。

为什么没有人介绍当表出现删除、修改时如何对 memcache 进行相应的操作呢?

因为那是不现实的,所以都假定对表的删除、修改是不会发生的。也就是说 memcache 在实际运用中当做数据缓存使用并不普遍。

更多的是作为数据共享出现的,比如你需要一个超超全局的载体,在程序间、用户间传递数据

为什么说是不现实的呢?

因为内存远比硬盘小,你不可能按记录将数据保存到 memcache。如果可能,那就不要数据库了

所以 memcache 中只是保存了常用查询的结果,并从查询串生成 key 以便识别

这就是说 memcache 中是以 查询 为单位保存数据的

当 删除、修改 发生时,你基本不可能从 查询 简单的判断出,这个 删除、修改 是否影响到该查询(查询有很多,一一实际查询一下是不现实的)

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值