目录
1. set
命令简介
set
命令用于在 Memcached 中存储数据,如果 键(key)已存在,它会 覆盖旧值,否则会 创建新键值对。
2. set
命令的语法
set <key> <flags> <exptime> <bytes> [noreply]
<data>
<key>
:要存储的键(Key),最长 250 字符。<flags>
:用户自定义的标志(通常设置为 0)。<exptime>
:数据的过期时间(秒),0 表示永不过期。<bytes>
:存储的数据大小(字节数)。[noreply]
(可选):如果指定,则服务器不会返回响应。<data>
:实际存储的值(必须和<bytes>
指定的大小匹配)。
3. set
命令的参数说明
参数 | 说明 | 示例 |
---|---|---|
<key> | 存储数据的键 | user:123 |
<flags> | 自定义标志(通常为 0) | 0 |
<exptime> | 过期时间(秒),0 代表永不过期 | 300 (5 分钟) |
<bytes> | 数据的字节大小 | 11 (”Hello World” 长度) |
<data> | 具体存储的数据 | "Hello World" |
[noreply] | 可选,不返回响应 | noreply |
4. 使用 Telnet 进行 set
操作
4.1 连接 Memcached
telnet 127.0.0.1 11211
4.2 执行 set
命令
set user:123 0 300 11
Hello World
4.3 获取数据
get user:123
返回结果:
VALUE user:123 0 11
Hello World
END
5. 不同编程语言的 set
示例
5.1 PHP set
示例
<?php
$memcached = new Memcached();
$memcached->addServer("127.0.0.1", 11211);
// 存储数据(5 分钟过期)
$memcached->set("user:123", "Hello World", 300);
// 获取数据
echo $memcached->get("user:123");
?>
5.2 Python set
示例
from pymemcache.client import base
client = base.Client(('127.0.0.1', 11211))
# 存储数据(5 分钟过期)
client.set('user:123', 'Hello World', expire=300)
# 获取数据
print(client.get('user:123').decode('utf-8'))
5.3 Java set
示例
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));
// 存储数据(5 分钟过期)
client.set("user:123", 300, "Hello World");
// 获取数据
System.out.println(client.get("user:123"));
client.shutdown();
}
}
5.4 Node.js set
示例
const Memcached = require('memcached');
const memcached = new Memcached("127.0.0.1:11211");
// 存储数据(5 分钟过期)
memcached.set("user:123", "Hello World", 300, function(err) {
if (err) console.error(err);
});
// 获取数据
memcached.get("user:123", function(err, data) {
if (err) console.error(err);
console.log(data);
});
发表回复