实例

以下实例演示了如何连接到 Memcached 服务并执行简单的 set 和 get 命令。

本实例的 Memcached 服务运行的主机为 127.0.0.1(本机) 、端口为 11211。


telnet 127.0.0.1 11211                                 连接

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set foo 0 0 3                                                保存命令
bar                                                             数据
STORED                                                      结果
get foo                                                        取得命令
VALUE foo 0 3                                              数据
bar                                                              数据
END                                                            结束行

quit                                                             退出


 
set key flags exptime bytes [noreply] value 
add key flags exptime bytes [noreply] value 
replace key flags exptime bytes [noreply] value 
append key flags exptime bytes [noreply] value 
prepend key flags exptime bytes [noreply] value
参数说明如下:  
    key:键值 key-value 结构中的 key,用于查找缓存值。  
    flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。  
    exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)  
    bytes:在缓存中存储的字节数  
    noreply(可选): 该参数告知服务器不需要返回数据  
    value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)

常用命令:add(添加)、set(修改)、delete(删除)、get(获取)

cas key flags exptime bytes unique_cas_token [noreply] value


参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。
  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
  • bytes:在缓存中存储的字节数
  • unique_cas_token通过 gets 命令获取的一个唯一的64位值。
  • noreply(可选): 该参数告知服务器不需要返回数据
  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)

Memcached get 命令

Memcached get 命令获取存储在 key(键) 中的 value(数据值) ,如果 key 不存在,则返回空。

语法:

get 命令的基本语法格式如下:

get key

多个 key 使用空格隔开,如下:

get key1 key2 key3

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。

Memcached gets 命令

Memcached gets 命令获取带有 CAS 令牌存 的 value(数据值) ,如果 key 不存在,则返回空。

语法:

gets 命令的基本语法格式如下:

gets key

多个 key 使用空格隔开,如下:

gets key1 key2 key3

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。

Memcached delete 命令

Memcached delete 命令用于删除已存在的 key(键)。

语法:

delete 命令的基本语法格式如下:

delete key [noreply]

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • noreply(可选): 该参数告知服务器不需要返回数据

Memcached incr 与 decr 命令

Memcached incr 与 decr 命令用于对已存在的 key(键) 的数字值进行自增或自减操作。

incr 与 decr 命令操作的数据必须是十进制的32位无符号整数。

如果 key 不存在返回 NOT_FOUND,如果键的值不为数字,则返回 CLIENT_ERROR,其他错误返回 ERROR


incr 命令

语法:

incr 命令的基本语法格式如下:

incr key increment_value

参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。
  • increment_value: 增加的数值。

Memcached flush_all 命令

Memcached flush_all 命令用于清理缓存中的所有 key=>value(键=>值) 对。

该命令提供了一个可选参数 time,用于在制定的时间后执行清理缓存操作。

语法:

flush_all 命令的基本语法格式如下:

flush_all [time] [noreply]

列出所有keys

stats items
STAT items:1:number 2
STAT items:1:number_hot 0
STAT items:1:number_warm 0
STAT items:1:number_cold 2
STAT items:1:age_hot 0
STAT items:1:age_warm 0
STAT items:1:age 163

-----------------------------------
STAT items:2:number 2
STAT items:2:number_hot 0
STAT items:2:number_warm 0
STAT items:2:number_cold 2
STAT items:2:age_hot 0
STAT items:2:age_warm 0
STAT items:2:age 200
END

通过itemid获取key

通过命令stats cachedump id 0获得key的值。0表示全部列出

stats cachedump 1 0
ITEM four [3 b; 0 s]
ITEM one [10 b; 0 s]

END

通过get获取key值

通过get命令获得key的值


get one
VALUE one 0 10
hello word

END