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
相关文章推荐
- crontab与环境变量,以及应该注意的一些问题
- CKeditor的使用以及一些应该注意的问题
- python 幂运算以及其他运算 应该注意的几个问题
- cvs服务器在redhat 9.0上的建立以及应该注意的问题
- (OpenSymphony)SiteMesh简介以及与Strust2集成应该注意的问题
- android中事件的处理以及应该注意的问题
- java web上传、下载文件源码以及应该注意的问题
- Linux基础:crontab 与 环境变量,以及应该注意的问题
- (OpenSymphony)SiteMesh简介以及与Strust2集成应该注意的问题
- 论文读后感,关于机器学习实践过程中应该注意的问题
- crontab与环境变量,以及应该注意的一些问题
- SSH配置的步骤以及配置过程应该注意的问题
- 使用memcache应该注意的问题
- 复制构造函数 与 赋值函数 的区别以及应该注意的问题
- linux下网络服务器模型以及使用时应该注意的问题
- 【转】日常电脑操作应该注意的十几个小动作以及维
- [BTS]创建WebService时应该注意的问题
- Web项目中用到JNI时应该注意的问题
- 部署ASP.Net 2.0应该注意的问题
- 对于使用xml配置文档时应该注意的问题