http://www.cnblogs.com/azheng007/p/3159345.html
一.存储命令
存储命令的格式:
<command name> <key> <flags> <exptime> <bytes>
<data block>
参数说明:
<command name> 操作命令:set/add/replace
<key> 缓存的键值
<flags> 客户机使用它存储关于键值对的额外信息
<exptime> 缓存过期时间 单位为秒 0 表示永远存储
<bytes> 缓存值的字节数
<data block> 数据块
1.添加值命令
(1) 无论如何都添加或更新的set 命令 (值不存在则添加 存在则更新) set 设置后可以用get命令获取值 也可以使用delete命令删除该值
复制代码
[root@zhz jiehun]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set test_key 0 0 3
100
STORED
get test_key
VALUE test_key 0 3
100
END
delete test_key
DELETED
get test_key
END
复制代码
(2)只有数据不存在时添加值的add命令
复制代码
[root@zhz jiehun]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
add zhang 0 0 1 //第一次添加 成功
q
STORED
add zhang 0 0 1 //第二次添加 失败
q
NOT_STORED
复制代码
(3)只有数据存在时替换的replace命令
复制代码
[root@zhz jiehun]# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
replace zhang_t 0 0 2 //replace 不存在的元素 失败
22
NOT_STORED
add zhang_t 0 0 2
12
STORED
get zhang_t
VALUE zhang_t 0 2
12
END
replace zhang_t 0 0 3 //replace 存在的值成功
200
STORED
get zhang_t //值被替换
VALUE zhang_t 0 3
200
END
复制代码
2.删除命令 delete
复制代码
get zhang_t
VALUE zhang_t 0 3
200
END
delete zhang_t
DELETED
get zhang_t
END
复制代码
二 读取命令
1.get 命令 获取一个键或多个键的值 多个键以空格分开
复制代码
get zhang_t zhang
VALUE zhang 0 1
q
END
set zhang_t 0 0 3
100
STORED
get zhang_t zhang
VALUE zhang_t 0 3
100
VALUE zhang 0 1
q
END
复制代码
2 .gets 命令比get返回的值多一个数字 用来判断数据是否发生过改变
复制代码
gets zhang_t zhang
VALUE zhang_t 0 4 185
1000
VALUE zhang 0 1 181
q
END
set zhang_t 0 29 4
1000
STORED
gets zhang_t zhang
VALUE zhang_t 0 4 186
1000
VALUE zhang 0 1 181
q
END
复制代码
3. cas 的意思是 check and set 的意思,只有当最后一个参数鹤gets获取的那个用来判断数据发生改变的那个值相同时才会存储成功,否则返回 exists
复制代码
gets zhang
VALUE zhang 0 3 188
dff
END
cas zhang 0 0 3 189
kjf
EXISTS
cas zhang 0 0 3 188
kjf
STORED
gets zhang
VALUE zhang 0 3 189
kjf
END
复制代码
4. 自曾(incr) 自减(decr)命令
复制代码
set age 0 0 2
10
STORED
get age
VALUE age 0 2
10
END
incr age 2
12
incr age 2
14
get age
VALUE age 0 2
14
END
decr age 1
13
get age
VALUE age 0 2
13
END
复制代码
三 状态命令
1.stats 显示memcachd状态
复制代码
stats
STAT pid 1532 //进程id
STAT uptime 348167 //服务运行秒数
STAT time 1372215144 //当前unix时间戳
STAT version 1.4.14 //服务器版本
STAT libevent 2.0.10-stable
STAT pointer_size 32 //操作系统字大小
STAT rusage_user 3.997392 //进程累计用户时间
STAT rusage_system 2.258656 //进程累计系统时间
STAT curr_connections 5 //当前打开连接数
STAT total_connections 265 //链接总数
STAT connection_structures 7 //服务器分配的链接结构数
STAT reserved_fds 20 //
STAT cmd_get 1911 //执行get命令次数
STAT cmd_set 195 //执行set命令次数
STAT cmd_flush 3 //执行flush命令次数
STAT cmd_touch 0
STAT get_hits 1708 //get命中次数
STAT get_misses 203 //get未命中次数
STAT delete_misses 11 //delete 未命中次数
STAT delete_hits 14 //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 2 //case 命中次数
STAT cas_badval 1 //使用擦拭次数
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 164108 //读取字节数
STAT bytes_written 1520916 //写入字节书
STAT limit_maxbytes 67108864 //分配的内存数
STAT accepting_conns 1 //目前接受的连接数
STAT listen_disabled_num 0
STAT threads 4 //线程数
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 262144
STAT hash_is_expanding 0
STAT expired_unfetched 4
STAT evicted_unfetched 0
STAT bytes 23995 //存储字节数
STAT curr_items 31 //item个数
STAT total_items 189 //item总数
STAT evictions 0 //为获取空间删除的item个数
STAT reclaimed 17
END
复制代码
2.flush_all 清空所有项目
flush_all
OK
3.后续追加append和prepend前面插入命令
复制代码
get age
VALUE age 0 2
13
END
append age 0 3
ERROR
append age 0 0 6
111111
STORED
get age
VALUE age 0 8
13111111
END
prepend age 0 0 6
111111
STORED
get age
VALUE age 0 14
11111113111111
END
复制代码
该命令有一个可选的数字参数。它总是执行成功,服务器会发送 “OK\r\n” 回应。它的效果是使已经存在的项目立即失效(缺省),或在指定的时间后。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。 flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行(这是由memcached的懒惰检测和删除机制决定的)。
flush_all 效果是它导致所有更新时间早于 flush_all 所设定时间的项目,在被执行取回命令时命令被忽略。
memecached还有其他命令 ,这里只是平时我们工作中经常用到的一些,以此文章记录备用。
分享到:
相关推荐
### Memcached 命令详解 #### 一、Memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少从复杂数据库中检索数据所需的次数,从而...
4. 启动Memcached服务,通常使用`memcached -d`命令。 5. 配置客户端应用程序以连接到Memcached服务,这需要使用特定语言的客户端库。 **使用技巧** 1. **键值设置策略**:为键选择有意义的名字,以便于理解和调试...
- **TCP服务流程**: 客户端发起连接请求,memcached接收并处理命令,根据命令类型执行相应操作,如存储、获取、删除等,然后返回结果。 - **状态转换和通信协议处理**: memcached维护一个状态机来处理不同阶段的网络...
Memcached是一种高性能的分布式内存...总之,熟练掌握Memcached的这些基本命令,可以帮助开发者更高效地管理和操作缓存数据,提升应用程序的性能。在实际使用中,根据具体需求选择合适的命令和策略,是优化系统的关键。
### Memcached原理和使用详解 #### Memcached简介 Memcached是一种高性能、分布式内存对象缓存系统,由LiveJournal的开发团队开发,旨在通过缓存数据库查询结果和其他计算结果来减轻数据库负担,从而提高动态Web...
Java环境下Memcached应用详解 Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于Web应用中,用于减轻数据库的负载,提高数据访问速度。在Java环境下,我们可以利用各种客户端库来与Memcached服务器进行...
### Memcached 命令汇总:Stats 系列详解 #### 概述 Memcached 是一种高性能、分布式内存对象缓存系统,用于减轻数据库负载、加快动态 Web 应用的速度并提升网站性能。通过 stats 命令,我们可以获取 Memcached ...
在Linux操作系统上安装Memcached涉及多个步骤,包括下载源码、编译、配置以及启动服务。以下是详细的过程: 1. **获取源码**: 首先,你需要访问Memcached的官方网站或通过Git克隆其源码仓库来获取最新版本的源码...
该协议支持基本的缓存操作命令,如设置、获取、删除等,同时还提供了统计信息和管理命令。 ##### 事件驱动模型 Memcached内部使用了`libevent`库来实现高效的事件驱动模型。`libevent`是一个跨平台的事件处理库,它...
**memcached缓存技术详解** `memcached` 是一个高性能的分布式内存对象缓存系统,它广泛应用于Web应用中以减轻数据库的负载。通过将数据存储在内存中,memcached可以快速提供数据,从而提高应用的响应速度。本文将...
**memcached 开发完整demo详解** `memcached` 是一个高性能、分布式的内存对象缓存系统,用于在动态系统中减少数据库负载,提升应用性能。它通过将数据存储在内存中,以键值对的形式提供高速的数据访问。在这个...
**知识点详解:memcached的基本命令与管理** Memcached是一款高性能的分布式内存对象缓存系统,通过减轻数据库负载来加速动态Web应用,提升网站访问速度。本文将深入解析memcached的基本命令,涵盖其安装、配置、...
### Memcached手册知识点详解 #### 一、Memcached简介与特点 **1.1 Memcached特点** - **协议简单:** Memcached采用了一个简单的文本协议,客户端与服务器之间的交互非常直观,易于理解和实现。 - **基于...
- **命令处理**:`memcached`支持GET、SET、DELETE等基本操作,以及CAS(Check and Set)操作,确保数据一致性。 **4. EnyimMemcached** `EnyimMemcached-11226.zip`是一个.NET客户端库,用于与`memcached`服务器...
**Memcached缓存技术详解** Memcached是一款高性能的分布式内存对象缓存系统,它被广泛应用于Web应用中,用于缓解数据库的压力,提高数据访问速度。本文将深入探讨Memcached的基本概念、工作原理、安装配置、使用...
显示MemCached命令的帮助信息。 #### 四、配置修改 在Windows环境下,可以通过修改注册表来调整MemCached的配置参数: 1. **打开注册表编辑器** 在命令提示符中输入`regedit`并按回车键打开注册表编辑器。 2. ...
**memcached for Windows 最新版本详解** `memcached` 是一款高性能、分布式内存对象缓存系统,用于在Web应用中减少数据库负载,提高数据访问速度。它通过将数据存储在内存中来加速读取操作,而不是频繁地从硬盘上...