失效机制(了解)
1)如果key过期了,value会及时删除么?空间会及时清理么?
2)如果分配的存储空间,写满了,还允许写么?
-m可以配置内存大小。
memcached 内部不会监视记录是否过期,而是在 get时查看记录的时间戳,检查记录是否过期。这种技术被称为 lazy(惰性)expiration。因此,memcached 不会在过期监视上耗费 CPU 时间比如php的里session机制 懒惰机制 php垃圾回收机制 gc回收 python 变量垃圾回收机制
编程语言中,变量分配 栈空间(变量名称) 堆空间(变量值)
memcached1.4.25之后 就不是懒惰机制了。
当前时间和存储时间,这个差值来判断是否过期。
LRU:
memcached 会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。因此,当 memcached 的内存空间不足时,就从最近未被使用的记录中搜索,并将其空间分配给新的记录。从缓存的实用角度来看,该模型十分理想
不过,有些情况下 LRU 机制反倒会造成麻烦。memcached 启动时通过“M”参数可以禁止 LRU
不够存的情况,加大缓存和加大内存。
单机可以增加到768G的内存。服务器就是这个样子。散热好。内存条、金手指。
正常的服务器都是32G内存。
需要加内存,-m进行添加。
php使用memcached:
php扩展安装:
在LNMP架构中,如果需要使用到memcached。首先需要安装对应的扩展,php7以上需要安装memcached扩展。
官方扩展地址:http://pecl.php.net/
1)上传PHP扩展源码包:
需要在web服务器的上安装,server01和server03
memcached-3.2.0.tgz php扩展
libmemcached-1.0.8.tar.gz php扩展的依赖。
2)解压编译安装: