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

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文档。

0