Memcached
文章目录
Memcached 是一个自由开源的,高性能,分布式内存对象缓存系统。
Memcached 是一种基于内存的 key-value 存储,用来存储小块的任意数据(字符串、对象)。
Memcached 官方网站:http://memcached.org/
Linux常见安装工具命令
|
|
常用命令
telnet memcached 11211 // 连接 memcached 服务器
-
quit // 退出终端
-
flush_all // 清除全部缓存
-
get key_name // 获取某个 key 的缓存
-
gets key_name // gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些
-
delete key // 清除某个key的缓存
-
set key flags exptime bytes [noreply] // set 命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
- key:键值 key-value 结构中的 key,用于查找缓存值
- flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息,一般设置为 0
- exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
- bytes:在缓存中存储的字节数,最大 1M
- noreply(可选): 该参数告知服务器不需要返回数据
-
add key flags exptime bytes [noreply] // 仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应 NOT_STORED。
-
replace key flags exptime bytes [noreply] // 仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应。
-
append key flags exptime bytes [noreply] // 用于向已存在 key(键) 的 value(数据值) 后面追加数据 。
-
prepend key flags exptime bytes [noreply] // 用于向已存在 key(键) 的 value(数据值) 前面追加数据 。
注意
- memcache 有效期默认最大 30 天,如设置过期时间大于 30 天,值会设置失败
- memcached 单个 key 支持最大的存储对象为1M。这个值由其内存分配机制决定的。『所以Memcahce不适合缓存大数据,超过1MB的数据,可以考虑压缩或拆分到多个key中。』
- memcached 在存储数组时,PHP 的 memcached 的驱动会自动进行 serialize 和 unserialize
memcache vs memcached
其实很简单,memcache是php的一个扩展,用于php管理memcached(服务端),php-memcache.dll。