memcache 知识点

memcache 知识点

MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。数据库

memcache 基本设置

-p 监听的端口
-l 链接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时链接数,默认是1024
-f 块大小增加因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

memcached -p 11211 -u root -m 3000 -c 30720

经常使用方法

memcache::add 方法:add方法用于向memcache服务器添加一个要缓存的数据。
memcache::set 方法:set方法用于设置一个指定key的缓存内容,set方法是add方法和replace方法的集合体
memcache::replace方法: replace方法用于替换一个指定key的缓存内容,若是key不存在则返回false
memcache::flush - 清除全部缓存的数据

ps: memcache 过时时间是秒

过时时间限制

memcached的过时时间并不能随便设置,有一个最大时限就是30天,若超过30天后,存储时返回true,可是在取数据的时候取不到。(在取数据的时候才去作验证,看看数据是否失效)缓存

说到这个过时时间了,就不得不说说memcached的缓存失效策略:服务器

memcached的缓存失效策略是LRU(最近最少使用)加上到期失效策略。当向memcached存储数据时,你可能会设置一个过时时间,能够是永久也能够是一段时间,可是若是一旦给memcached分配的内存使用完毕,则首先会替换掉已失效的数据,其次是最近最少使用的数据。分布式

存储限制

键被限制在 250 字符以内。数据项不能超过 1M (这个值由其内存分配机制决定的),由于这是最大的块( slab )值。若是对数据超过1M的值进行set,则会返回FALSE。memcached

memcached默认状况下采用了名为Slab Allocator的机制分配、管理内存。在该机制出现之前,内存的分配是经过对全部记录简单地进行malloc和free来进行的。可是,这种方式会致使内存碎片,加剧操做系统内存管理器的负担,最坏的状况下,会致使操做系统比memcached进程自己还慢。Slab Allocator就是为解决该问题而诞生的。Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以彻底解决内存碎片问题.性能

访问限制

最大同时链接数由-c 设置操作系统

一致性hash(转载)

首先求出机器节点的hash值(怎么算机器节点的hash?ip能够做为hash的参数吧。。固然还有其余的方法了),而后将其分布到0~2^32的一个圆环上(顺时针分布)。以下图所示:rest

相关文章
相关标签/搜索