参数不算多,我们来启动一个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。
分享到:
相关推荐
**Memcached** 是一款高性能...通过以上内容,你应该对Memcached的基本配置、使用以及客户端操作有了深入了解。无论是通过telnet进行简单的测试,还是在实际项目中集成客户端库,都能更好地利用Memcached提升系统性能。
### Memcached服务端安装及其客户端简单使用 ...通过上述介绍,我们可以了解到如何在Windows环境下安装Memcached服务端以及如何进行基本的客户端操作。这对于提高Web应用的性能和减少数据库负载具有重要意义。
总结,安装和使用 Memcached 1.2.1 for Windows 主要包括下载解压、创建服务、启动服务、配置参数以及通过客户端进行数据操作。了解这些基础知识,你就可以开始利用 Memcached 提升你的应用程序性能了。记得定期更新...
`stats settings` 命令可以获取Memcached当前的配置设置信息,如最大内存、内存碎片比率等。 ```sh stats settings ``` 示例输出: ``` STAT maxconns 1024 STAT hashpower 20 STAT maxhash 1048576 STAT ...
在优化方面,考虑调整内存分配、调整缓存策略(如 LRU)、设置合理的超时时间,以及根据应用需求平衡缓存大小和数据库查询之间的平衡。 ## 七、安全性 默认情况下,Memcached 未启用任何安全措施,因此在生产环境...
连接成功后,可以通过命令行进行GET和SET操作来验证Memcached的功能。 #### 三、Java中的使用 由于本教程的项目基于Java开发,因此我们将详细介绍如何在Java程序中集成Memcached。 ##### 3.1 引入依赖 为了在...
5. cmd_set:表示设置 key=>value 的次数。 6. total_items:表示当前缓存中的键值对个数。 7. curr_items:表示当前缓存中的键值对个数。 通过分析这些状态信息,我们可以了解 Memcached 服务器的性能和健康状况,...
2. 输入 stats 命令查看 Memcached 服务器运行情况参数,例如 uptime 和 cmd_get。 Memcached 的优点和缺点 优点: * Memcached 可以将频繁访问的数据存储在内存中,以提高应用程序的性能。 * Memcached 可以在多...
2. **设置参数**:Memcached有许多可配置的参数,如监听端口、最大内存使用量、超时时间等。例如,你可以通过"-p"参数指定端口(默认为11211),"-m"参数设置最大内存(默认为64MB)。如需更改,启动命令可以写成...
通过 Telnet 连接到 Memcached 服务器并执行 `stats` 命令,可以获取一系列关于 Memcached 实例的关键信息,包括: 1. **pid**:进程ID,显示 Memcached 服务的运行状态。 2. **uptime**:服务自启动以来的时间,...
- 输入`stats`命令查看Memcached服务器的状态信息。 其中,`uptime`表示Memcached运行的时间(秒),`cmd_get`表示查询缓存的次数。通过计算`cmd_get / uptime`可以得到平均每秒的查询次数,以此评估缓存的使用...
例如,使用`set`命令设置键值对,`get`命令获取键值,`add`、`replace`和`append`命令分别用于新增、替换和追加数据,`delete`命令用于删除键值,`stats`查看系统状态,`flush_all`清空所有缓存,最后使用`quit`退出...
一些常用命令包括`set`(设置键值对)、`get`(获取键对应的值)、`delete`(删除键)和`stats`(查看服务器状态)。 6. **分布式缓存**:Memcached支持分布式缓存,即可以在多台机器上部署多个实例,通过一致性...
- **设置与获取键值**:`set key 0 0 10` 后跟空格和值(例如,`set testkey 0 0 5 hello`),`get key` 获取键对应的值。 4. **客户端支持** 虽然 `memcached` 的命令行交互有限,但它支持多种编程语言的客户端...
2. **API接口**:客户端库通常提供简单的API接口,如`set(key, value)`用于设置缓存,`get(key)`用于获取缓存,`delete(key)`用于删除缓存。 3. **最佳实践**:在开发中,应合理设置缓存过期时间,避免缓存击穿和...
- `set key flags expiration value`:设置键值对。 - `get key`:获取键对应的值。 - `delete key`:删除键。 - `incr/decr key`:对整数值进行递增/递减操作。 - `stats`:显示服务器统计信息。 Memcached的...
要使用`stats`命令,你需要通过telnet连接到Memcached服务器,命令格式如下: ```bash telnet 主机名 端口号 ``` 连接成功后,输入`stats`命令,服务器会返回一系列状态信息,这些信息反映了Memcached的实时运行...