目录
1. append
命令简介
append
命令用于向已存在的键值后追加数据。如果键(key)不存在,则 append
命令不会创建新键,而是直接返回错误。
与 prepend
命令的区别:
append
:在已有数据的末尾追加内容。prepend
:在已有数据的开头插入内容。
2. append
命令的语法
append <key> <flags> <exptime> <bytes> [noreply]
<data>
<key>
:要追加数据的键(必须已存在)。<flags>
:用户自定义标志(通常设为 0)。<exptime>
:过期时间(秒),0 代表永不过期(该参数在append
操作中无效)。<bytes>
:追加的数据大小(字节数)。[noreply]
(可选):如果指定,则服务器不会返回响应。<data>
:实际追加的值(必须与<bytes>
指定的大小匹配)。
3. append
命令的参数说明
参数 | 说明 | 示例 |
---|---|---|
<key> | 需要追加数据的键(必须已存在) | message |
<flags> | 自定义标志(通常为 0) | 0 |
<exptime> | 过期时间(无效,在 append 中忽略) | 0 |
<bytes> | 追加数据的字节大小 | 6 (” World” 的长度) |
<data> | 追加的数据 | " World" |
[noreply] | 可选,不返回响应 | noreply |
4. 使用 Telnet 进行 append
操作
4.1 连接 Memcached
telnet 127.0.0.1 11211
4.2 先存储一个初始值(使用 set
)
set message 0 0 5
Hello
4.3 使用 append
追加数据
append message 0 0 6
World
4.4 获取数据
get message
返回结果:
VALUE message 0 11
Hello World
END
4.5 append
但键不存在(失败示例)
append new_key 0 0 5
Test1
返回结果:
NOT_STORED
5. 不同编程语言的 append
示例
5.1 PHP append
示例
<?php
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211);
// 先存储一个值
$memcached->set("message", "Hello");
// 使用 append 追加内容
if ($memcached->append("message", " World")) {
echo "Value appended successfully";
} else {
echo "Key does not exist";
}
// 获取数据
echo $memcached->get("message");
?>
5.2 Python append
示例
from pymemcache.client import base
client = base.Client(('127.0.0.1', 11211))
# 先存储一个值
client.set('message', 'Hello')
# 追加数据
result = client.append('message', ' World')
if result:
print("Value appended successfully")
else:
print("Key does not exist")
# 获取数据
print(client.get('message').decode('utf-8'))
5.3 Java append
示例
import net.spy.memcached.MemcachedClient;
import java.io.IOException;
import java.net.InetSocketAddress;
public class MemcachedTest {
public static void main(String[] args) throws IOException {
MemcachedClient client = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
// 先存储一个值
client.set("message", 0, "Hello");
// 追加数据
boolean success = client.append(0, "message", " World").get();
if (success) {
System.out.println("Value appended successfully");
} else {
System.out.println("Key does not exist");
}
// 获取数据
System.out.println(client.get("message"));
client.shutdown();
}
}
5.4 Node.js append
示例
const Memcached = require('memcached');
const memcached = new Memcached("127.0.0.1:11211");
// 先存储一个值
memcached.set("message", "Hello", 0, function(err) {
if (err) console.error(err);
// 追加数据
memcached.append("message", " World", function(err, result) {
if (err) {
console.error(err);
} else {
console.log(result ? "Value appended successfully" : "Key does not exist");
}
});
// 获取数据
memcached.get("message", function(err, data) {
if (err) console.error(err);
console.log(data);
});
});
发表回复