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

来源:互联网 发布:淘宝市场行情标准版 编辑:程序博客网 时间:2024/06/05 05:50

简单介绍一下,什么是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

0 0
原创粉丝点击