缓存之memcached

Posted soft张三丰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓存之memcached相关的知识,希望对你有一定的参考价值。

什么是memcached

memcached是一套分布式的快取系统,与redis相似,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。这是一套开放源代码软件,以BSD license授权协议发布。

memcached缺乏认证以及安全管制,这代表应该将memcached服务器放置在防火墙后。


官方地址

http://memcached.org/

缓存之memcached


特征

memcached作为高速运行的分布式缓存服务器,具有以下的特点。

协议简单基于libevent的事件处理内置内存存储方式memcached不互相通信的分布式

支持的语言

许多语言都实现了连接memcached的客户端,其中以Perl、php为主。仅仅memcached网站上列出的有:

PerlPHPPythonRubyC#C/C++Lua等等

常用命令及参数

启动Memcache 常用参数

-p <num> 设置TCP端口号(默认设置为: 11211)-U <num> UDP监听端口(默认: 11211, 0 时关闭) -l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,有安全隐患,若设置为127.0.0.1就只能本机访问)-c <num> max simultaneous connections (default: 1024)-d daemon方式运行-u <username> 绑定使用指定用于运行进程<username>-m <num> 允许最大内存用量,单位M (默认: 64 MB)-P <file> PID写入文件<file>,这样可以使得后边进行快速进程终止, 需要与-d 一起使用

更多可以使用 memcached -h 在linux下:./usr/local/bin/memcached -d -u root -l 192.168.1.197 -m 2048 -p 12121 在window下:d:App_Servmemcachedmemcached.exe -d RunService -l 127.0.0.1 -p 11211 -m 500 在windows下注册为服务后运行:sc.exe create Memcached_srv binpath= “d:App_Servmemcachedmemcached.exe -d RunService -p 11211 -m 500″start= auto net start Memcached

连接和退出

telnet 127.0.0.1 11211quit

下面指定先要执行

telnet 127.0.0.1 11211

查看命令

get key查看指定key的缓存

缓存之memcached

存储命令

add key flag expire length新增指定key的缓存

缓存之memcached


    set key flag expire length设置指定key的缓存。若key存在,则replace替换,否则add新增

缓存之memcached

key 缓存的键flag 标志,要求为一个正整数。用来标识数据原本的格式,以便后期对数据的处理。expire 有效期。小于30天的秒数(60*60*24*30秒),表示从设定开始,多少秒后失效。大于30天的秒数(60*60*24*30秒),表示的距离1970年1月1日多少秒后失效,常用于定时。0表示不自动失效,并不代表永久有效。length 缓存的值的长度(以字节为单位)

修改命令

replace key flag expire length替换指定key缓存的值

缓存之memcached

删除命令

delete key [time]删除指定key的缓存。可选参数time,表示在删除缓存后的多少秒内,不允许get,add,replace操作此key

计数命令

incr key num增加指定key的值的大小,num必须是数字 decr key num减少指定key的值的大小,num必须是数字

统计命令

stats统计memcached的运行信息

STAT pid 46673 #进程IDSTAT uptime 25336 #服务器已运行秒数STAT time 1494173893 #服务器当前unix时间戳STAT version 1.4.13 #memcached版本号STAT libevent 1.4.13-stable #libevent版本STAT pointer_size 64 #操作系统位数,64位STAT rusage_user 0.642902 #进程累计用户时间STAT rusage_system 0.303953 #进程累计系统时间STAT curr_connections 10 #当前打开连接数STAT total_connections 25 #memcached运行以来连接总数STAT connection_structures 11 #memcached分配的连接结构数STAT reserved_fds 20 #内部使用的FD数STAT cmd_get 7 #执行get命令总数STAT cmd_set 3 #执行set命令总数STAT cmd_flush 0 #执行flush_all命令总数STAT cmd_touch 0 #touch命令请求总数STAT get_hits 3 #get命中次数STAT get_misses 4 #get未命中次数STAT delete_misses 0 #delete未命中次数STAT delete_hits 1 #delete命中次数STAT incr_misses 0 #incr未命中次数STAT incr_hits 0 #incr命中次数STAT decr_misses 0 #decr未命中次数STAT decr_hits 0 #decr命中次数STAT cas_misses 0 #cas未命中次数STAT cas_hits 0 #cas命中次数STAT cas_badval 0 #使用擦拭次数STAT touch_hits 0 #touch命中次数STAT touch_misses 0 #touch未命中次数STAT auth_cmds 0 #认证命令处理次数STAT auth_errors 0 #认证失败数目STAT bytes_read 358 #读取字节总数STAT bytes_written 160 #写入字节总数STAT limit_maxbytes 16777216#分配的内存总数(字节)STAT accepting_conns 1 #是否已达到连接最大数 1-达到 0-未达到STAT listen_disabled_num 0 #统计当前服务器连接数曾经到达最大连接数的次数,这个数应该为0或者趋近于0,如果这个数不断增长,就要小心了STAT threads 4 #当前MemCache总进程数STAT conn_yields 0 #连接操作主动放弃数目STAT hash_power_level 16 #hash表等级STAT hash_bytes 524288 #当前hash表大小STAT hash_is_expanding 0 #hash表正在扩展STAT expired_unfetched 0 #已过期但未获取大对象数目STAT evicted_unfetched 0 #一驱逐但未获取大对象数目STAT bytes 166 #当前存储占用字节数STAT curr_items 2 #当前存储的数据总个数STAT total_items 3 #启动以来存储的数据总数STAT evictions 0 #LRU释放的对象数目STAT reclaimed 0 #已过期的数据数目来存储新数据的数目

stats items列出所有key

STAT items:1:number 4 #该slab中对象数(不包含过期对象)STAT items:1:age 1941 #LRU队列中最老对象的过期时间STAT items:1:evicted 0 #LRU释放对象数STAT items:1:evicted_nonzero 0 #设置了非0时间的LRU释放对象数STAT items:1:evicted_time 0 #最后一次LRU释放的对象存在时间STAT items:1:outofmemory 0 #不能存储对象次数STAT items:1:tailrepairs 0 #修复slabs次数STAT items:1:reclaimed 0 #使用过期对象空间存储对象次数STAT items:1:expired_unfetched 0 #已过期但未获取的对象数目STAT items:1:evicted_unfetched 0 #已驱逐但未获取的对象数目

其他命令:flush_all清空所有的存储对象 缓存的命中率=命中次数/(命中次数+未命中次数)*100%


以上是关于缓存之memcached的主要内容,如果未能解决你的问题,请参考以下文章

缓存之memcached

提供源码包高性能存储对象缓存 之Memcached

Nginx使用教程:使用Nginx缓存之Memcached缓存

SSH整合缓存之-Memcached作为hibernate的二级缓存

缓存之Memcache

Linux之搭建memcache缓存服务器