您的位置:首页 > 数据库 > Memcache

memcache实践以及应该注意的问题

2017-03-22 15:06 288 查看

简单介绍一下,什么是memcache?

缓存是一种常驻于内存的内存数据库,内存的读取速度远远快于程序在磁盘读取数据的速度。

我们在设计程序的时候常常会考虑使用缓存,将经常访问的数据放到内存上面这样可以提高访问数据的速度,同时可以降低磁盘或数据库的压力。

memcache中的key最大值为250B,value的最大值为1M,而redis的value最大值512M。

而memcached基于libmemcached的扩展实现了分布式,体现在将不同的键保存到不同的服务器上。

Thinkphp中使用memcache

memcache在thinkphp5.0的运用使用TP内置的Cache的类更加方便的使用,在config.php配置地址与端口

'cache'                  => [
// 使用复合缓存类型
'type'  =>  'complex',
// 默认使用的缓存
'default'   =>  [
'type'   => 'File',
'path'   => CACHE_PATH,
],
// 文件缓存
'file'   =>  [
'type'   => 'file',
'path'   => RUNTIME_PATH . 'file/',
],
// memcache缓存
'memcache'   =>  [
'type'   => 'memcache',
'host'       => '127.0.0.1',
'port' => '11211'
],
],


命名空间的引用,在控制器头部使用use think\Cache进行调用;再利用里面的内置函数进行设置和获取值

//设置
Cache::store('memcache')->set('paoteamselect',$paoteamselect);
//获取
$paoteamselect = Cache::get('paoteamselect');


有位论坛的网友说的挺好的

所谓缓存概念,是指对于几百万条数据,在内存中缓存几十条,保持高效命中效率。缓存依赖于各种自动或者手动设置的CacheDependency

规则,它自动删除缓存数据。也就是说,当你用了所谓的缓存,那么缓存的优势就在于它自动、智能地删除数据,这才叫缓存。

有些人以为把大量冗余数据放到内存变量里,这就叫做缓存。这完全就是本末倒置的概念。缓存技术的高明指出就在于它能自动删除数据的技术。

在实际利用到缓存的时候例如session的保存在文件的方式保存的,如果使用memcache也可以很好的起到优化的作用,因为Memcached读写操作都保证在内存中完成。

所以我在想如果我保存数据库的数据如果它只是保存的作用的话,那memcache其实也没有用到多少东西了,所以应该是在数据更新量不大的地方采取这种用法,还有自动的去更新缓存

做法:

1、在数据更新的时候更新相对应的数据库

2、在数据表中设置updatetime字段,利用检测 updatetime进行对比发生变化进行更新。

(有不对之处有看到的网友记得提点一下,谢谢)

相关文章

http://blog.csdn.net/ln865709215/article/details/53283083
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息