Memcached使用手册【皇家赌场官方网址】,运行状态监控

皇家赌场官方网址 5

Memcached服务器的运行状态监控一般可以用个专门的运营系统监控起来,不过一般开发者可以用memcached协议支持的统计命令(stats)在linux下直接得到。

linux查看memcached状态

memcached简介

1、memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。

2、它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
3、Memcached基于一个存储键/值对的hashmap。
4、其守护进程(daemon
)是用C写的,
5、但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

一: 安装libevent

1、使用telnet连接memcached服务器

 

memcached安装说明

1、windows安装:参照[

2、liunx安装:参照

     yum install libevent

telnet 10.10.10.10 11211 

[[email protected]
xinetd.d]# telnet 127.0.0.1 11211

memcached使用方法

1、  安装完memcached后,如何连接memached呢?

使用telnet命令连接memcached服务器,在windows下有可能提示telnet命令无效,是由于telnet客户端没有安装,安装方法参见()。

telnet连接memcached命令如下图

 皇家赌场官方网址 1

开始什么都不显示,回车后输入命令 stats
查看统计信息,如下图,说明服务器运作正常。

 皇家赌场官方网址 2

看到这样的信息表示memcached安装运行正常,使用telnet连接memcached成功。

二: 检查是libevent否安装成功

2、memcached统计命令

Trying 127.0.0.1…

常用memcached命令详解

Memcached作为缓存服务器,对其操作的命令主要分为三类:

1、  服务器状态命令:可以查看memcahced服务的当前状态

2、  数据存储命令:如何存储数据到memcached服务器中

3、  数据读取命令:获取memacahed服务器中的数据

4、  数据删除命令:删除memcached服务器中的数据

 

一、服务器状态命令

1、 stats: memcached 实例的当前统计数据。

STAT pid 22459                             进程ID 
STAT uptime 1027046                        服务器运行秒数 
STAT time 1273043062                       服务器当前unix时间戳 
STAT version 1.4.4                         服务器版本 
STAT pointer_size 64                      
操作系统字大小(这台服务器是64位的) 
STAT rusage_user 0.040000                  进程累计用户时间 
STAT rusage_system 0.260000                进程累计系统时间 
皇家赌场官方网址 ,STAT curr_connections 10                   当前打开连接数 
STAT total_connections 82                  曾打开的连接总数 
STAT connection_structures 13              服务器分配的连接结构数 
STAT cmd_get 54                            执行get命令总数 
STAT cmd_set 34                            执行set命令总数 
STAT cmd_flush 3                           指向flush_all命令总数 
STAT get_hits 9                            get命中次数 
STAT get_misses 45                         get未命中次数 
STAT delete_misses 5                       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 auth_cmds 0 
STAT auth_errors 0 
STAT bytes_read 15785                      读取字节总数 
STAT bytes_written 15222                   写入字节总数 
STAT limit_maxbytes 1048576                分配的内存数(字节) 
STAT accepting_conns 1                     目前接受的链接数 
STAT listen_disabled_num 0                 
STAT threads 4                             线程数 
STAT conn_yields 0 
STAT bytes 0                               存储item字节数 
STAT curr_items 0                          item个数 
STAT total_items 34                        item总数 
STAT evictions 0                           为获取空间删除item的总数

二、数据存储命令

1、  set 命令

set的命令在memcached中的使用频率极高。set命令不但可以简单添加,如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

实例:set username  0  0  8。

注意一点就是:如果设定存储字节数为8的话,那么在输入的存在内容时,内容大小必须是8个字节,否则存储不成功。

2、   add 命令

add命令使用方法与set完全一致,区别是只有数据不存在时进行添加的add,如果已经存在一个key为username的数据,add不成功。

3、  replace 命令

replace命令使用方法与set完全一致,区别是只有数据存在时才能进行数据更新,如果replace一个不存在的key的数据,则replace不成功。与add命令相反。

 

三、数据读取命令

1、  get命令

get空格key 可以获取指定key的数据。多个key可以用空格隔开

 皇家赌场官方网址 3

2、  gets命令

 皇家赌场官方网址 4

可以看到,gets命令比普通的get命令多返回了一个数字(上图中为13)。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。这个数字类似于svn中的版本号。

四、数据删除命令

1、  delete命令

 皇家赌场官方网址 5

删除已存在的键值和不存在的记录可以返回不同的结果。

      ls -al /usr/lib | grep libevent

一些常用的统计信息或者配置信息可以通过stats命令来得到。完成步骤1连接到memcached服务器之后进入telnet命令行并输入stats,回车之后就可以得到这些统计信息了。这些统计信息包含的信息如下:

Connected to 127.0.0.1.

java操作memcached工具介绍

java客户端操作memcached服务器的常用工具有:memcached client for java
和spymemcached。比较常用的就是memcached client for
java。目前项目中使用的是memcached client for java。

 

      # 显示最后一行

pid: Process id of this server process(memcached服务器的进程号)

Escape character is ‘^]’.

      lrwxrwxrwx.  1 root root      21 Oct 27 10:26 libevent.so ->
libevent-2.0.so.5.1.2

uptime: Number of secs since the server
started(memcache服务器运行时间,单位秒)

stats

二: 安装Memcache

time:current UNIX time according to the
server(memcached服务所在机器的时间,单位秒)

STAT pid 22362    //memcache服务器的进程ID  www.2cto.com  

     wget

version:Version string of this server(当前memcached的版本号)

STAT uptime 1469315    //服务器已经运行的秒数

      tar -zxvf memcached-1.4.0.tar.gz

pointer_size:Default size of pointers on the host OS (generally 32 or
64)(默认指针地址长度,根据操作系统,该值可以为32或者64)

STAT time 1339671194    //服务器当前的unix时间戳

      cd memcached-1.4.0.tar.gz

rusage_user: Accumulated user time for this
process(seconds:microseconds)(累计用户使用时间,精确到毫秒)

STAT version 1.4.9    //memcache版本

      ./configure –with-libevent=/usr/

rusage_system: Accumulated system time for this process
(seconds:microseconds)(累计系统使用时间,精确到毫秒)

STAT libevent 1.4.9-stable    //libevent版本

      make && make install

curr_items :Current number of items stored(当前存储的数据项个数)

STAT pointer_size 64  
 //当前操作系统的指针大小(32位系统一般是32bit,64就是64位操作系统)

三:检查Memcache是否安装成功

total_items :Total number of items stored since the server
started(自启动之后,此服务器存储过的数据项个数)

STAT rusage_user 3695.485200    //进程的累计用户时间

     ls -al /usr/local/bin/mem*

bytes:Current number of bytes used to store
items(memcached服务器当前占用的内存,单位字节)

STAT rusage_system 14751.273465    //进程的累计系统时间

     #显示最后

curr_connections:Number of open connections(当前打开的连接数)

STAT curr_connections 69    //服务器当前存储的items数量

     -rwxr-xr-x. 1 root root 246656 Oct 27 10:39
/usr/local/bin/memcached

total_connections :Total number of connections opened since the server
started running(自启动之后,此服务器打开过的连接数)

STAT total_connections 855430    //从服务器启动以后存储的items总数量

四:开启Memcached守护进程

connection_structures :Number of connection structures allocated by the
server(此服务器分配的连接结构)

STAT connection_structures 74    //服务器分配的连接构造数

     memcached -d -u root

cmd_get :Cumulative number of retrieval reqs(获取请求数)

STAT reserved_fds 20    //

    #无提证明开启成功

cmd_set:Cumulative number of storage reqs(存储请求数)

STAT cmd_get 328806688    //get命令(获取)总请求次数

    #连接参数

get_hits:Number of keys that have been requested and found
present(请求成功的key的个数,缓存命中率=get_hits / cmd_get * 100% )

STAT cmd_set 75441133    //set命令(保存)总请求次数  www.2cto.com  

    -p 监听端口

get_misses:Number of items that have been requested and not
found(请求失败的key的个数)

STAT cmd_flush 34    //flush命令请求次数

    -l 连接的IP地址,默认是本机

delete_misses:Number of deletions reqs for missing
keys(删除数据请求不命中key的个数)

STAT cmd_touch 0    //touch命令请求次数

    -d start启动memecache服务

delete_hits:Number of deletion reqs resulting in an item being
removed.(删除数据请求命中key的个数)

STAT get_hits 253547177    //总命中次数

     -d restart重启

incr_misses :Number of incr reqs against missing keys.

STAT get_misses 75259511    //总未命中次数

    -d stop|shutdown关闭服务

incr_hits: Number of successful incr reqs.

STAT delete_misses 4    //delete命令未命中次数

    -d install 安装

decr_misses:Number of decr reqs against missing keys.

STAT delete_hits 565730    //delete命令命中次数

    -d uninstall 卸载

decr_hits :Number of successful decr reqs.

STAT incr_misses 0    //incr命令未命中次数

    -u 以身份运行仅在root下有效

cas_misses:Number of CAS reqs against missing keys.

STAT incr_hits 0    //incr命令命中次数

    -m 最大内存使用,单位MB,默认64MB,最大2G

cas_hits :Number of successful CAS reqs.

STAT decr_misses 0    //decr命令未命中次数

    -M 内存耗尽时返回错误

cas_badval: Number of CAS reqs for which a key was found, but the CAS
value did not match.

STAT decr_hits 0    //decr命令命中次数

    -c 最大同时连接数量,默认是1024

auth_cmds: Number of authentication commands handled, success or
failure.

STAT cas_misses 0    //cas命令未命中次数

    -f 块大小增长因为,默认是1.25

auth_errors:Number of failed authentications.

STAT cas_hits 0        //cas命令命中次数

    -n 最小分配空间,key+value+flags默认48

evictions:Number of valid items removed from cache to free memory for
new items

STAT cas_badval 0    //使用擦拭次数

    -h 显示帮助

reclaimed:Number of times an entry was stored using memory from an
expired entry(在已过期的数据占用的空间中存储新数据数据的次数,
memcached优先使用过期数据占用的空间)

STAT touch_hits 0    //touch命令未命中次数

    #使用telnet连接

bytes_read : Total number of bytes read by this server from
network(总共存储的字节数)

STAT touch_misses 0    //touch命令命中次数

    telnet localhost 11211

bytes_written:Total number of bytes sent by this server to
network(中共发送的字节数)

STAT auth_cmds 0    //认证命令处理的次数

    #直接按回车会出现客户端错误.

limit_maxbytes: Number of bytes this server is allowed to use for
storage.

STAT auth_errors 0    //认证失败数目

五:stats参数含义

threads :Number of worker threads requested. (see doc/threads.txt)

STAT bytes_read 545701515844        //总读取字节数(请求字节数)

    STAT pid 22459                             进程ID

conn_yields: Number of times any connection yielded to another due to
hitting the -R limit.

STAT bytes_written 1649639749866    //总发送字节数(结果字节数)

    STAT uptime 1027046                        服务器运行秒数

皇家赌场官方网址 6

STAT limit_maxbytes 2147483648      
 //分配给memcache的内存大小(字节)

    STAT time 1273043062                       服务器当前unix时间戳

STAT accepting_conns 1            //服务器是否达到过最大连接(0/1)

    STAT version 1.4.4                         服务器版本

STAT listen_disabled_num 0    //失效的监听数

    STAT pointer_size 64                      
操作系统字大小(这台服务器是64位的)

STAT threads 4        //当前线程数

    STAT rusage_user 0.040000                  进程累计用户时间

STAT conn_yields 14    //连接操作主动放弃数目

    STAT rusage_system 0.260000                进程累计系统时间

STAT hash_power_level 16    //

    STAT curr_connections 10                   当前打开连接数

STAT hash_bytes 524288

    STAT total_connections 82                  曾打开的连接总数

STAT hash_is_expanding 0

    STAT connection_structures 13              服务器分配的连接结构数

STAT expired_unfetched 30705763

    STAT cmd_get 54                            执行get命令总数

STAT evicted_unfetched 0

    STAT cmd_set 34                            执行set命令总数

STAT bytes 61380700    //当前存储占用的字节数

    STAT cmd_flush 3                           指向flush_all命令总数

STAT curr_items 28786    //当前存储的数据总数

    STAT get_hits 9                            get命中次数

STAT total_items 75441133    //启动以来存储的数据总数

    STAT get_misses 45                         get未命中次数

STAT evictions 0  
 //为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)

    STAT delete_misses 5                       delete未命中次数

STAT reclaimed 39957976    //已过期的数据条目来存储新数据的数目

    STAT delete_hits 1                         delete命中次数

END

    STAT incr_misses 0                         incr未命中次数

 

    STAT incr_hits 0                           incr命中次数

退出:quit或者ctrl + ] 然后在按q就行了。

    STAT decr_misses 0                         decr未命中次数

 

    STAT decr_hits 0                           decr命中次数

 

    STAT cas_misses 0                          cas未命中次数

安装telenet方法

    STAT cas_hits 0                            cas命中次数

1、yum install telnet-server 服务端

    STAT cas_badval 0                          使用擦拭次数

2、yum install telnet 客户端

    STAT auth_cmds 0

3、vi /etc/xinetd.d/telnet

    STAT auth_errors 0

service telnet

    STAT bytes_read 15785                      读取字节总数

 

    STAT bytes_written 15222                   写入字节总数

{

    STAT limit_maxbytes 1048576                分配的内存数(字节)

 

    STAT accepting_conns 1                     目前接受的链接数

       flags              = REUSE

    STAT listen_disabled_num 0                

 

    STAT threads 4                             线程数

       socket_type     = stream       

    STAT conn_yields 0

 

    STAT bytes 0                               存储item字节数

       wait        = no

    STAT curr_items 0                          item个数

 

    STAT total_items 34                        item总数

       user        = root

    STAT evictions 0                          
为获取空间删除item的总数

 

       server             = /usr/sbin/in.telnetd

 

       log_on_failure       += USERID

 

       disable           = yes

 

}

 

将disable项由yes改成no。

 

4、/etc/init.d/xinetd restart

 

其他方式:

 

前项目中,linux下memcached的启动/结束的方式

 

默认情况下memcached安装到/usr/local/bin下。

 

进入安装目录,启动memcached:/usr/local/memcached/bin/memcached -d -c
10240 -m 1024 -u root

 

获取运行状态:echo stats | nc localhost 11211(可以查看出pid) 或使用ps
-ef|grep memcached 

 

 

停止memcached:kill -9 pid  (-9表示强制杀死,pid 为进程的进程标识符)

 

 

-d 选项是启动一个守护进程,

 

 

-m 是分配给Memcache使用的内存数量,单位是MB,这里是1024MB,默认是64MB

 

 

-u 是运行Memcache的用户,这里是root

 

 

-l 是监听的服务器IP地址,默认应该是本机

 

 

-p 是设置Memcache监听的端口,默认是11211,最好是1024以上的端口

 

 

-c
选项是最大运行的并发连接数,默认是1024,这里设置了10240,按照你服务器的负载量来设定

 

 

-P 是设置保存Memcache的pid文件位置

 

 

-h 打印帮助信息

 

 

-v 输出警告和错误信息

 

 

-vv 打印客户端的请求和返回信息

 

ps -ef|grep memcached(命令说明) 

 

grep:功能说明:查找文件里符合条件的字符串。

 

|:管道命令操作符

 

ps(process status):功能说明:报告程序状况。

 

连接到 memcached:

 

 

telnet ip 端口,如telnet 192.168.100.11 11211

 

 

stats查看状态,flush_all:清楚缓存

 

 

查看memcached状态的基本命令,通过这个命令可以看到如下信息:

 

 

STAT pid 22459                             进程ID

 

 

STAT uptime 1027046                        服务器运行秒数

 

 

STAT time 1273043062                       服务器当前unix时间戳

 

 

STAT version 1.4.4                         服务器版本

 

 

STAT pointer_size 64                      
操作系统字大小(这台服务器是64位的)

 

 

STAT rusage_user 0.040000                  进程累计用户时间

 

 

STAT rusage_system 0.260000                进程累计系统时间

 

 

STAT curr_connections 10                   当前打开连接数

 

 

STAT total_connections 82                  曾打开的连接总数

 

 

STAT connection_structures 13              服务器分配的连接结构数

 

 

STAT cmd_get 54                            执行get命令总数

 

 

STAT cmd_set 34                            执行set命令总数

 

 

STAT cmd_flush 3                           指向flush_all命令总数

 

 

STAT get_hits 9                            get命中次数

 

 

STAT get_misses 45                         get未命中次数

 

 

STAT delete_misses 5                       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 auth_cmds 0

 

 

STAT auth_errors 0

 

 

STAT bytes_read 15785                      读取字节总数

 

 

STAT bytes_written 15222                   写入字节总数

 

 

STAT limit_maxbytes 1048576                分配的内存数(字节)

 

 

STAT accepting_conns 1                     目前接受的链接数

 

 

STAT listen_disabled_num 0                

 

 

STAT threads 4                             线程数

 

 

STAT conn_yields 0

 

 

STAT bytes 0                               存储item字节数

 

 

STAT curr_items 0                          item个数

 

 

STAT total_items 34                        item总数

 

 

STAT evictions 0                           为获取空间删除item的总数

 

另外一个例子:

 

启动/结束

 

memcached -d -m 10 -u root -l 192.168.0.122 -p 11200 -c 256 -P
/tmp/memcached.pid

 

-d 选项是启动一个守护进程,

 

-m 是分配给Memcache使用的内存数量,单位是MB,这里是10MB

 

-u 是运行Memcache的用户,这里是root

 

-l
是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.122

 

-p 是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口

 

-c
选项是最大运行的并发连接数,默认是1024,这里设置了256,按照你服务器的负载量来设定

 

-P 是设置保存Memcache的pid文件

 

kill `cat /tmp/memcached.pid`

 

获取运行状态

 

echo stats | nc 192.168.1.123 11200

 

watch “echo stats | nc 192.168.1.123 11200” (实时状态)

 

[[email protected]
xinetd.d]# telnet 127.0.0.1 11211 Trying 127.0.0.1… Connected to
127.0.0.1. Escape character is ^]. stats STAT pid 22362
//memcac…

发表评论

电子邮件地址不会被公开。 必填项已用*标注