- Memcached 存储命令
- Memcached - 设置数据
- Memcached - 添加数据
- Memcached - 替换数据
- Memcached - 追加数据
- Memcached - 前置数据
- 内存缓存 - CAS
- Memcached 检索命令
- Memcached - 获取数据
- Memcached - 获取 CAS 数据
- Memcached - 删除密钥
- Memcached - 删除数据
- Memcached - 递增/递减
- Memcached 有用资源
- Memcached - 快速指南
- Memcached - 有用的资源
- Memcached - 讨论
Memcached - CAS 命令
CAS 代表“检查并设置”或“比较并交换”。Memcached CAS命令用于设置数据(如果自上次获取后未更新)。如果 Memcached 中不存在该键,则返回NOT_FOUND。
句法
Memcached CAS命令的基本语法如下所示:
set key flags exptime bytes unique_cas_key [noreply] value
语法中的关键字如下所述 -
key - 这是从 Memcached 存储和检索数据的键的名称。
flags - 它是服务器与用户提供的数据一起存储的 32 位无符号整数,并在检索项目时与数据一起返回。
exptime - 过期时间(以秒为单位)。0 表示无延迟。如果 exptime 超过 30 天,Memcached 将其用作过期的 UNIX 时间戳。
bytes - 数据块中需要存储的字节数。这是需要存储在Memcached 中的数据的长度。
unique_cas_key - 这是从 gets 命令获取的唯一密钥。
noreply (可选) - 这是一个参数,通知服务器不要发送任何回复。
value - 这是需要存储的数据。使用上述选项执行命令后,需要在新行中传递数据。
输出
命令的输出如下所示 -
STORED
STORED表示成功。
ERROR 表示保存数据时出错或语法错误。
EXISTS表示自上次获取以来有人修改了 CAS 数据。
NOT_FOUND表示该键在 Memcached 服务器中不存在。
例子
要在 Memcached 中执行 CAS 命令,您需要从 Memcached gets 命令获取 CAS 令牌。
cas tp 0 900 9 ERROR cas tp 0 900 9 2 memcached set tp 0 900 9 memcached STORED gets tp VALUE tp 0 9 1 memcached END cas tp 0 900 5 2 redis EXISTS cas tp 0 900 5 1 redis STORED get tp VALUE tp 0 5 redis END
使用 Java 应用程序的 CAS
要从 Memcached 服务器获取 CAS 数据,您需要使用 Memcached gets方法。
例子
import net.spy.memcached.MemcachedClient; public class MemcachedJava { public static void main(String[] args) { // Connecting to Memcached server on localhost MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211)); System.out.println("Connection to server successful"); System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").isDone()); // Get cas token from cache long castToken = mcc.gets("tutorialspoint").cas; System.out.println("Cas token:"+castToken); // now set new data in memcached server System.out.println("Now set new data:"+mcc.cas("tutorialspoint", castToken, 900, "redis")); System.out.println("Get from Cache:"+mcc.get("tutorialspoint")); } }
输出
在编译和执行程序时,您会看到以下输出 -
Connection to server successful set status:true Cas token:3 Now set new data:OK Get from Cache:redis