目录

  1. append 命令简介
  2. append 命令的语法
  3. append 命令的参数说明
  4. 使用 Telnet 进行 append 操作
  5. 不同编程语言的 append 示例
  6. 参考资料

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);
    });
});


6. 参考资料