`
sunqi
  • 浏览: 230118 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

memcached参数设置以及telnet客户端的get、set、stats

阅读更多
参数不算多,我们来启动一个Memcache的服务器端:
# /usr/local/bin/memcached -d -m 10  -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`

get key1
END
set key1 0 3600 3
123
STORED
incr key1 5
128
decr key1 5
123
delete key1
DELETED
get key1
END
quit

delete 命令格式: delete <key>


基本 memcached 客户机命令

您将使用五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:

set
add
replace
get
delete
前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用清单 5 所示的语法:


清单 5. 修改命令语法


command <key> <flags> <expiration time> <bytes>
<value>
表 1 定义了 memcached 修改命令的参数和用法。


表 1. memcached 修改命令参数

参数 用法
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点
value 存储的值(始终位于第二行)
现在,我们来看看这些命令的实际使用。

1)set
set 命令用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。

注意以下交互,它使用了 set 命令:

set userId 0 0 5
12345
STORED

2)add
仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED。

3)replace
仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从 memcached 服务器接受到一条 NOT_STORED 响应。

4)get
get 命令用于检索与之前添加的键值对相关的值。您将使用 get 执行大多数检索操作。

5)delete
最后一个基本命令是 delete。delete 命令用于删除 memcached 中的任何现有值。您将使用一个键调用 delete,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条 NOT_FOUND 消息。

6)gets
gets 命令的功能类似于基本的 get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。

7)cas
cas(check 和 set)是一个非常便捷的 memcached 命令,用于设置名称/值对的值(如果该名称/值对在您上次执行 gets 后没有更新过)。它使用与 set命令相类似的语法,但包括一个额外的值:gets 返回的额外值。

set userId 0 0 5 
55555 
STORED 
 
gets userId 
VALUE userId 0 5 6 
55555 
END 
 
cas userId 0 0 5 6 
33333 
STORED 


8)stats
stats 命令的功能正如其名:转储所连接的 memcached 实例的当前统计数据。在下例中,执行 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的总数

9)flush_all
flush_all 是最后一个要介绍的命令。这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处。下面是一个使用 flush_all 的例子:

view plaincopy to clipboardprint?
set userId 0 0 5 
55555 
STORED 
get userId 
VALUE userId 0 5 
55555 
END 
flush_all 
OK 
get userId 
END 


10)计算缓存命中率

view plaincopy to clipboardprint?
                 
stats 
STAT pid 6825 
STAT uptime 540692 
STAT time 1249252262 
STAT version 1.2.6 
STAT pointer_size 32 
STAT rusage_user 0.056003 
STAT rusage_system 0.180011 
STAT curr_items 595 
STAT total_items 961 
STAT bytes 4587415 
STAT curr_connections 3 
STAT total_connections 22 
STAT connection_structures 4 
STAT cmd_get 2688 
STAT cmd_set 961 
STAT get_hits 1908 
STAT get_misses 780 
STAT evictions 0 
STAT bytes_read 5770762 
STAT bytes_written 7421373 
STAT limit_maxbytes 536870912 
STAT threads 1 
END 

现在,用 get_hits 的数值除以 cmd_gets。在本例中,您的命中率大约是 71%。在理想情况下,您可能希望得到更高的百分比 — 比率越高越好



echo "flush_all" | nc 127.0.0.1 12000
注:flush并不会将items删除,只是将所有的items标记为expired。
分享到:
评论

相关推荐

    memcache的配置及使用——memcache及其客户端telnet

    **Memcached** 是一款高性能...通过以上内容,你应该对Memcached的基本配置、使用以及客户端操作有了深入了解。无论是通过telnet进行简单的测试,还是在实际项目中集成客户端库,都能更好地利用Memcached提升系统性能。

    Memcached服务端安装及其客户端简单使用[参考].pdf

    ### Memcached服务端安装及其客户端简单使用 ...通过上述介绍,我们可以了解到如何在Windows环境下安装Memcached服务端以及如何进行基本的客户端操作。这对于提高Web应用的性能和减少数据库负载具有重要意义。

    memcached-1.2.1-win32下载及安装方法

    总结,安装和使用 Memcached 1.2.1 for Windows 主要包括下载解压、创建服务、启动服务、配置参数以及通过客户端进行数据操作。了解这些基础知识,你就可以开始利用 Memcached 提升你的应用程序性能了。记得定期更新...

    Memcached 统计与监控

    `stats settings` 命令可以获取Memcached当前的配置设置信息,如最大内存、内存碎片比率等。 ```sh stats settings ``` 示例输出: ``` STAT maxconns 1024 STAT hashpower 20 STAT maxhash 1048576 STAT ...

    memcached安装包

    在优化方面,考虑调整内存分配、调整缓存策略(如 LRU)、设置合理的超时时间,以及根据应用需求平衡缓存大小和数据库查询之间的平衡。 ## 七、安全性 默认情况下,Memcached 未启用任何安全措施,因此在生产环境...

    java使用Memcached简单教程

    连接成功后,可以通过命令行进行GET和SET操作来验证Memcached的功能。 #### 三、Java中的使用 由于本教程的项目基于Java开发,因此我们将详细介绍如何在Java程序中集成Memcached。 ##### 3.1 引入依赖 为了在...

    memcached 命令行状态全解

    5. cmd_set:表示设置 key=&gt;value 的次数。 6. total_items:表示当前缓存中的键值对个数。 7. curr_items:表示当前缓存中的键值对个数。 通过分析这些状态信息,我们可以了解 Memcached 服务器的性能和健康状况,...

    memcached使用小结(PHP).docx

    2. 输入 stats 命令查看 Memcached 服务器运行情况参数,例如 uptime 和 cmd_get。 Memcached 的优点和缺点 优点: * Memcached 可以将频繁访问的数据存储在内存中,以提高应用程序的性能。 * Memcached 可以在多...

    windows memcached 安装文件

    2. **设置参数**:Memcached有许多可配置的参数,如监听端口、最大内存使用量、超时时间等。例如,你可以通过"-p"参数指定端口(默认为11211),"-m"参数设置最大内存(默认为64MB)。如需更改,启动命令可以写成...

    查看、分析memcached使用状态

    通过 Telnet 连接到 Memcached 服务器并执行 `stats` 命令,可以获取一系列关于 Memcached 实例的关键信息,包括: 1. **pid**:进程ID,显示 Memcached 服务的运行状态。 2. **uptime**:服务自启动以来的时间,...

    memcached中文学习文档

    - 输入`stats`命令查看Memcached服务器的状态信息。 其中,`uptime`表示Memcached运行的时间(秒),`cmd_get`表示查询缓存的次数。通过计算`cmd_get / uptime`可以得到平均每秒的查询次数,以此评估缓存的使用...

    memcached分布式缓存数据库部署.doc

    例如,使用`set`命令设置键值对,`get`命令获取键值,`add`、`replace`和`append`命令分别用于新增、替换和追加数据,`delete`命令用于删除键值,`stats`查看系统状态,`flush_all`清空所有缓存,最后使用`quit`退出...

    Windows下Memcached相关安装程序打包

    一些常用命令包括`set`(设置键值对)、`get`(获取键对应的值)、`delete`(删除键)和`stats`(查看服务器状态)。 6. **分布式缓存**:Memcached支持分布式缓存,即可以在多台机器上部署多个实例,通过一致性...

    memcached For Windows.zip

    - **设置与获取键值**:`set key 0 0 10` 后跟空格和值(例如,`set testkey 0 0 5 hello`),`get key` 获取键对应的值。 4. **客户端支持** 虽然 `memcached` 的命令行交互有限,但它支持多种编程语言的客户端...

    64位memcached

    2. **API接口**:客户端库通常提供简单的API接口,如`set(key, value)`用于设置缓存,`get(key)`用于获取缓存,`delete(key)`用于删除缓存。 3. **最佳实践**:在开发中,应合理设置缓存过期时间,避免缓存击穿和...

    计算机后端-PHP视频教程. Memcachedmemcached(day1).pdf

    - `set key flags expiration value`:设置键值对。 - `get key`:获取键对应的值。 - `delete key`:删除键。 - `incr/decr key`:对整数值进行递增/递减操作。 - `stats`:显示服务器统计信息。 Memcached的...

    探讨:如何通过stats命令分析Memcached的内部状态

    要使用`stats`命令,你需要通过telnet连接到Memcached服务器,命令格式如下: ```bash telnet 主机名 端口号 ``` 连接成功后,输入`stats`命令,服务器会返回一系列状态信息,这些信息反映了Memcached的实时运行...

Global site tag (gtag.js) - Google Analytics