当前位置:首页>行业动态> 正文

Memcached 命令有哪些?如何正确使用它们?

Memcached常用命令包括:设置(set)、获取(get)、删除(delete)、增加(add)、替换(replace)和清空缓存(flush_all)。

Memcached是一种高性能的分布式内存缓存系统,用于加快动态Web应用程序的访问速度,以下是一些常用的Memcached命令及其使用说明:

启动Memcached

1、设置TCP端口号p <num>,默认为11211。

2、设置UDP监听端口U <num>,默认为11211,0时关闭。

3、绑定地址l <ip_addr>,默认允许所有地址访问,设为127.0.0.1则仅限本机访问。

4、最大并发连接数c <num>,默认为1024。

5、以daemon方式运行d

6、指定运行用户u <username>

7、最大内存用量m <num>,单位为MB,默认为64MB。

8、将PID写入文件P <file>,需要与d一起使用。

连接和退出

1、连接:使用telnet连接到Memcached服务器,如telnet 127.0.0.1 11211

2、退出:输入quit退出连接。

基本命令

命令描述
set添加或更新键值对
add仅在键不存在时添加
replace仅在键存在时替换
get获取键的值
delete删除键值对

高级命令

1、gets:类似于get,但返回一个额外的版本号,用于检查数据是否被修改过。

2、cas(check and set):仅在数据未被修改过时设置新值。

存储命令

命令描述
set/add/replace存储命令,用于操作键值对
append/prepend追加或预置数据到现有缓存数据的尾部或头部
flush_all使所有项目失效,但不会释放内存

读取命令

命令描述
get获取一个或多个键的值
gets获取键的值并返回一个额外的版本号

状态命令

命令描述
stats查看memcached的运行信息
stats items列出所有存储的项目
stats cachedump显示缓存中的所有项目

FAQs

1、问题:如何确保数据在未被修改过时才更新?

答案:使用cas命令,它只在数据未被修改过时才更新值。

2、问题:如何查看Memcached的运行状态?

答案:使用stats命令可以查看memcached的运行信息,包括进程ID、运行时间、当前存储内容数量等。

Memcached 常用命令

命令功能描述示例
SET将数据存储在Memcached中,如果键已存在,则覆盖旧值。SET key value [flags] [exptime] [bytes]
GET获取存储在Memcached中的值。GET key
ADD如果键不存在,则添加键值对,如果键已存在,则忽略该命令。ADD key value [flags] [exptime] [bytes]
REPLACE如果键存在,则替换旧值,如果键不存在,则忽略该命令。REPLACE key value [flags] [exptime] [bytes]
APPEND如果键存在,将值追加到现有值的末尾,如果键不存在,则忽略该命令。APPEND key value [flags] [exptime] [bytes]
PREPEND如果键存在,将值追加到现有值的开头,如果键不存在,则忽略该命令。PREPEND key value [flags] [exptime] [bytes]
INCR对存储的数字值执行原子的加1操作,如果键不存在,则返回错误。INCR key increment
DECR对存储的数字值执行原子的减1操作,如果键不存在,则返回错误。DECR key decrement
CAS如果键已存在,并且与提供的 CAS 值匹配,则替换键值对。CAS key CAS value value [flags] [exptime] [bytes]
FLUSH删除所有键值对。FLUSH
STAT返回Memcached的状态信息。STAT
GETS以管道的方式返回多个键的值。GETS key1 key2 ...
DELETE删除指定的键值对。DELETE key
EXISTS检查键是否存在。EXISTS key
Touch更新键的过期时间。Touch key exptime
GAT获取并设置值。GAT key value [flags] [exptime] [bytes]
NOOP无操作,用于测试连接是否仍然活跃。NOOP

使用说明

SET/ADD/REPLACE/APPEND/PREPEND: 这些命令都用于存储数据,但它们在键存在与否的情况下有不同的行为。

INCR/DECR: 这些命令用于原子地增加或减少存储的数字值。

CAS (CheckandSwap): 这个命令用于在值未被其他客户端修改的情况下替换值,确保操作的原子性。

FLUSH: 这个命令会删除所有键值对,通常在维护或重置Memcached时使用。

STAT: 这个命令可以提供关于Memcached实例的详细信息,如缓存命中率、内存使用情况等。

GETS: 这个命令可以同时获取多个键的值,这对于批量获取数据非常有用。

Touch: 这个命令可以更新键的过期时间,而不是完全删除和重新设置键值对。

上述命令的具体语法可能因Memcached的版本而异,在使用前,请查阅相应的Memcached文档。