Jan
18
今天在弄memcache的删除时,发现原来memcache没有删除key前缀的方法。因为我们的程序里key都是以
函数名.md5(serialize(func_get_args()))
组成。所以我希望能通过key的前缀就能删除所有这些值。
以下实际在操作步骤:
telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats items
STAT items:1:number 27
STAT items:1:age 2143632
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 12362
END
stats cachedump 33
CLIENT_ERROR bad command line
stats cachedump 33 6
ITEM smarty_function_supplySearch.87183521a32d91029fd8b14eedbe8c2c [101573 b; 1357352584 s]
END
set tim 0 0 5
12345
STORED
get tim
VALUE tim 0 5
12345
END
以下为进行memcached 服务时,可以使用的命令。
set: 用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
add :仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED 。
replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从memcached 服务器接受到一条NOT_STORED 响应。
get:用于检索与之前添加的键值对相关的值。
delete:用于删除memcached 中的任何现有值。您将使用一个键调用delete ,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND 消息。
gets:功能类似于基本的get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
stats :转储所连接的memcached 实例的当前统计数据。
flush_all:用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则flush_all 能提供很大的用处。
前三个命令是用于操作存储在memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用以下所示的语法:
command <key> <flags> <expiration time> <bytes>
<value>
参数 用法
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点(申请内存的字节数)
value 存储的值(始终位于第二行)
函数名.md5(serialize(func_get_args()))
组成。所以我希望能通过key的前缀就能删除所有这些值。
以下实际在操作步骤:
引用
telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
stats items
STAT items:1:number 27
STAT items:1:age 2143632
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 12362
END
stats cachedump 33
CLIENT_ERROR bad command line
stats cachedump 33 6
ITEM smarty_function_supplySearch.87183521a32d91029fd8b14eedbe8c2c [101573 b; 1357352584 s]
END
set tim 0 0 5
12345
STORED
get tim
VALUE tim 0 5
12345
END
以下为进行memcached 服务时,可以使用的命令。
引用
set: 用于向缓存添加新的键值对。如果键已经存在,则之前的值将被替换。
add :仅当缓存中不存在键时,add 命令才会向缓存中添加一个键值对。如果缓存中已经存在键,则之前的值将仍然保持相同,并且您将获得响应NOT_STORED 。
replace:仅当键已经存在时,replace 命令才会替换缓存中的键。如果缓存中不存在键,那么您将从memcached 服务器接受到一条NOT_STORED 响应。
get:用于检索与之前添加的键值对相关的值。
delete:用于删除memcached 中的任何现有值。您将使用一个键调用delete ,如果该键存在于缓存中,则删除该值。如果不存在,则返回一条NOT_FOUND 消息。
gets:功能类似于基本的get 命令。两个命令之间的差异在于,gets 返回的信息稍微多一些:64 位的整型值非常像名称/值对的 “版本” 标识符。
stats :转储所连接的memcached 实例的当前统计数据。
flush_all:用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则flush_all 能提供很大的用处。
前三个命令是用于操作存储在memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用以下所示的语法:
command <key> <flags> <expiration time> <bytes>
<value>
参数 用法
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点(申请内存的字节数)
value 存储的值(始终位于第二行)