Memcached 存储命令学习笔记

1. Memcached 简介

Memcached 是一款开源、高性能、轻量级的分布式内存对象缓存系统,可用于减轻动态web应用程序的数据库负载。

2. Memcached 常用存储命令

2.1 SET 命令

SET 命令用于向缓存中存储数据,语法如下:

Copy Code
set key flags exptime bytes [noreply]\r\n value\r\n

说明:

  • key:表示要存储的数据键名,为字符串类型。
  • flags:表示数据的属性信息,为整数类型。
  • exptime:表示数据的过期时间,为整数类型,单位为秒。
  • bytes:表示要存储的数据长度,为整数类型。
  • value:表示要存储的数据内容,为任意数据类型。
  • noreply:可选参数,表示是否不需要等待服务器响应,默认为需要。

实例: 存储一个键名为 "username",过期时间为 3600 秒,属性为 1 的字符串 "admin",命令如下:

Copy Code
set username 1 3600 5\r\nadmin\r\n

2.2 ADD 命令

ADD 命令用于向缓存中添加新数据,如果键名已经存在,则会返回 NOT_STORED 错误,语法如下:

Copy Code
add key flags exptime bytes [noreply]\r\n value\r\n

说明:

  • key:表示要添加的数据键名,为字符串类型。
  • flags:表示数据的属性信息,为整数类型。
  • exptime:表示数据的过期时间,为整数类型,单位为秒。
  • bytes:表示要添加的数据长度,为整数类型。
  • value:表示要添加的数据内容,为任意数据类型。
  • noreply:可选参数,表示是否不需要等待服务器响应,默认为需要。

实例: 添加一个键名为 "username",过期时间为 3600 秒,属性为 1 的字符串 "admin",如果键名已存在则返回 NOT_STORED 错误,命令如下:

Copy Code
add username 1 3600 5\r\nadmin\r\n

2.3 REPLACE 命令

REPLACE 命令用于替换已有的数据,如果键名不存在,则会返回 NOT_STORED 错误,语法如下:

Copy Code
replace key flags exptime bytes [noreply]\r\n value\r\n

说明:

  • key:表示要替换的数据键名,为字符串类型。
  • flags:表示数据的属性信息,为整数类型。
  • exptime:表示数据的过期时间,为整数类型,单位为秒。
  • bytes:表示要替换的数据长度,为整数类型。
  • value:表示要替换的数据内容,为任意数据类型。
  • noreply:可选参数,表示是否不需要等待服务器响应,默认为需要。

实例: 替换一个键名为 "username",过期时间为 3600 秒,属性为 1 的字符串 "admin2",如果键名不存在则返回 NOT_STORED 错误,命令如下:

Copy Code
replace username 1 3600 6\r\nadmin2\r\n

2.4 APPEND 命令

APPEND 命令用于在已有的数据后面追加新的数据,如果键名不存在,则会返回 NOT_STORED 错误,语法如下:

Copy Code
append key flags exptime bytes [noreply]\r\n value\r\n

说明:

  • key:表示要追加的数据键名,为字符串类型。
  • flags:表示数据的属性信息,为整数类型。
  • exptime:表示数据的过期时间,为整数类型,单位为秒。
  • bytes:表示要追加的数据长度,为整数类型。
  • value:表示要追加的数据内容,为任意数据类型。
  • noreply:可选参数,表示是否不需要等待服务器响应,默认为需要。

实例: 将一个键名为 "username" 的字符串 "admin" 后面追加一个字符串 "123",如果键名不存在则返回 NOT_STORED 错误,命令如下:

Copy Code
append username 1 3600 3\r\n123\r\n

2.5 PREPEND 命令

PREPEND 命令用于在已有的数据前面添加新的数据,如果键名不存在,则会返回 NOT_STORED 错误,语法如下:

Copy Code
prepend key flags exptime bytes [noreply]\r\n value\r\n

说明:

  • key:表示要添加的数据键名,为字符串类型。
  • flags:表示数据的属性信息,为整数类型。
  • exptime:表示数据的过期时间,为整数类型,单位为秒。
  • bytes:表示要添加的数据长度,为整数类型。
  • value:表示要添加的数据内容,为任意数据类型。
  • noreply:可选参数,表示是否不需要等待服务器响应,默认为需要。

实例: 将一个键名为 "username" 的字符串 "admin" 前面添加一个字符串 "123",如果键名不存在则返回 NOT_STORED 错误,命令如下:

Copy Code
prepend username 1 3600 3\r\n123\r\n

3. 总结

以上就是 Memcached 常用的存储命令,包括 SET、ADD、REPLACE、APPEND 和 PREPEND,了解并掌握这些命令对于使用 Memcached 缓存系统具有重要的意义。