这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | |||
分享:技术:memcached:memcached的介绍 [2015/07/22 14:18] gxx |
分享:技术:memcached:memcached的介绍 [2015/07/22 14:22] (当前版本) gxx |
||
---|---|---|---|
行 34: | 行 34: | ||
</code> | </code> | ||
====== memcached的常用命令 ====== | ====== memcached的常用命令 ====== | ||
- | * 存储命令+读取命令 | + | ===== 存储命令/读取命令 ===== |
存储命令的格式: | 存储命令的格式: | ||
<command name> <key> <flags> <exptime> <bytes> | <command name> <key> <flags> <exptime> <bytes> | ||
行 86: | 行 86: | ||
END | END | ||
</code> | </code> | ||
- | * 状态命令 | + | ===== 状态命令 ===== |
<code> | <code> | ||
stats #查看状态 | stats #查看状态 | ||
行 151: | 行 151: | ||
END | END | ||
</code> | </code> | ||
- | * 字符拼接命令 | + | ===== 字符拼接命令 ===== |
<code> | <code> | ||
set name 0 0 3 #set设置name | set name 0 0 3 #set设置name | ||
行 179: | 行 179: | ||
END | END | ||
</code> | </code> | ||
- | * 加减计数 | + | ===== 加减计数命令 ===== |
<code> | <code> | ||
set count 0 0 1 #set设置count为1 | set count 0 0 1 #set设置count为1 | ||
行 199: | 行 199: | ||
END | END | ||
</code> | </code> | ||
+ | ====== memcached的业务场景 ====== | ||
+ | ===== 适用的场景 ===== | ||
+ | - 如果网站包含了访问量很大的动态网页,因而数据库的负载将会很高。由于大部分数据库请求都是读操作,那么memcached可以显著地减小数据库负载。 | ||
+ | - 如果数据库服务器的负载比较低但CPU使用率很高,这时可以缓存计算好的结果( computed objects )和渲染后的网页模板(enderred templates)。 | ||
+ | - 利用memcached可以缓存 session数据 、临时数据以减少对他们的数据库写操作。 | ||
+ | - 缓存一些很小但是被频繁访问的文件。 | ||
+ | - 缓存Web 'services'(非IBM宣扬的Web Services,译者注)或RSS feeds的结果.。 | ||
+ | ===== 不适用的场景 ===== | ||
+ | - 缓存对象的大小大于1MB,Memcached本身就不是为了处理庞大的多媒体(large media)和巨大的二进制块(streaming huge blobs)而设计的。 | ||
+ | - key的长度大于250字符 | ||
+ | - 虚拟主机不让运行memcached服务,如果应用本身托管在低端的虚拟私有服务器上,像vmware, xen这类虚拟化技术并不适合运行memcached。Memcached需要接管和控制大块的内存,如果memcached管理的内存被OS或 hypervisor交换出去,memcached的性能将大打折扣。 | ||
+ | - 应用运行在不安全的环境中,Memcached为提供任何安全策略,仅仅通过telnet就可以访问到memcached。如果应用运行在共享的系统上,需要着重考虑安全问题。 | ||
+ | - 业务本身需要的是持久化数据或者说需要的应该是database |