目录

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

1. get 命令简介

get 命令用于从 Memcached 中获取一个或多个键的值。该命令会返回存储在缓存中的数据,如果指定的键不存在,则返回 NOT_FOUND

  • 单个键获取:当你只需要获取一个键的值时,可以使用简单的 get 命令。
  • 多个键获取:通过提供多个键,get 命令可以一次性返回多个键的值。

2. get 命令的语法

get <key1> <key2> ... <keyN>

  • <key1> <key2> ... <keyN>:你要获取的一个或多个键名。

3. get 命令的参数说明

参数说明示例
<key>要获取的键(可以是一个或多个)user, counter

4. 使用 Telnet 进行 get 操作

4.1 连接 Memcached

telnet 127.0.0.1 11211

4.2 存储一些键值(使用 set

set user 0 0 5
Alice
set counter 0 0 2
10

4.3 获取一个键的值

get user

返回结果:

VALUE user 0 5
Alice
END

4.4 获取多个键的值

get user counter

返回结果:

VALUE user 0 5
Alice
VALUE counter 0 2
10
END

4.5 获取一个不存在的键

get non_existent_key

返回结果:

END

表示该键不存在。


5. 不同编程语言的 get 示例

5.1 PHP get 示例

<?php
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211);

// 存储数据
$memcached->set("user", "Alice");
$memcached->set("counter", 10);

// 获取单个键的值
$user = $memcached->get("user");
echo "User: " . $user . "\n";  // 输出: Alice

// 获取多个键的值
$values = $memcached->getMulti(["user", "counter"]);
echo "User: " . $values["user"] . "\n";  // 输出: Alice
echo "Counter: " . $values["counter"] . "\n";  // 输出: 10
?>


5.2 Python get 示例

from pymemcache.client import base

client = base.Client(('127.0.0.1', 11211))

# 存储数据
client.set('user', 'Alice')
client.set('counter', 10)

# 获取单个键的值
user = client.get('user')
print(f"User: {user.decode('utf-8')}")  # 输出: Alice

# 获取多个键的值
keys = ['user', 'counter']
values = client.get_multi(keys)
print(f"User: {values['user'].decode('utf-8')}, Counter: {values['counter']}")  # 输出: Alice, 10


5.3 Java get 示例

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("user", 0, "Alice");
        client.set("counter", 0, 10);

        // 获取单个键的值
        String user = (String) client.get("user");
        System.out.println("User: " + user);  // 输出: Alice

        // 获取多个键的值
        Object[] values = client.getBulk("user", "counter").values().toArray();
        System.out.println("User: " + values[0] + ", Counter: " + values[1]);  // 输出: Alice, 10

        client.shutdown();
    }
}


5.4 Node.js get 示例

const Memcached = require('memcached');
const memcached = new Memcached("127.0.0.1:11211");

// 存储数据
memcached.set("user", "Alice", 0, function(err) {
    if (err) console.error(err);

    // 获取单个键的值
    memcached.get("user", function(err, data) {
        if (err) console.error(err);
        console.log("User: " + data);  // 输出: Alice
    });

    // 获取多个键的值
    memcached.get(["user", "counter"], function(err, data) {
        if (err) console.error(err);
        console.log("User: " + data.user + ", Counter: " + data.counter);  // 输出: Alice, 10
    });
});


6. 参考资料