Memcached 前置数据
Telnet前置数据
Memcached prepend命令用于在现有键中添加一些数据。数据存储在密钥的现有数据之前。
Memcached prepend 命令的基本语法如下所示-
prepend key flags exptime bytes [noreply]
value
语法中的关键字如下所述-
- key-它是键的名称,通过它存储和从Memcached检索数据。
- flags-它是服务器与用户提供的数据一起存储的32位无符号整数,并在检索到项目时随数据一起返回。
- exptime-它是到期时间,以秒为单位。0表示没有延迟。如果exptime超过30天,则Memcached会将其用作UNIX时间戳记进行过期。
- bytes-这是数据块中需要存储的字节数。这是需要存储在Memcached中的数据的长度。
- noreply(可选) -这是一个参数,它通知服务器不要发送任何答复。
- value-它是需要存储的数据。使用上述选项执行命令后,需要在新行中传递数据。
输出
命令的输出如下所示-
- STORED - 表示存储成功。
- ERROR - 表示数据未存储在Memcached中。
- CLIENT_ERROR - 表示错误。
在以下示例中,我们在不存在的键中添加了一些数据。因此,Memcached返回NOT_STORED。此后,我们设置一个密钥并在其中添加数据。
prepend jc2182 0 900 5
redis
NOT_STORED
set jc2182 0 900 9
memcached
STORED
get jc2182
VALUE jc2182 0 14
memcached
END
prepend jc2182 0 900 5
redis
STORED
get jc2182
VALUE jc2182 0 14
redismemcached
END
使用Java应用程序前置数据
要在Memcached服务器中前置数据,您需要使用Memcached prepend方法。
import java.io.IOException;
import java.net.InetSocketAddress;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
// Connecting to Memcached server on localhost
MemcachedClient mcc = null;
try {
mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
System.out.println("Connection to server sucessfully");
// 设置数据库 第一个参数key 第二个参数过期时间,第三个参数value
System.out.println("set status:" + mcc.set("jc2182", 900, "memcachd").getStatus());
// 用key从memcached服务器获取值
System.out.println("Get from Cache:" + mcc.get("jc2182"));
// 设置数据库 第一个参数key 第二个参数过期时间,第三个参数value (前置数据)
System.out.println("set status:" + mcc.prepend("jc2182", "redis").getStatus());
// 用key从memcached服务器获取值
System.out.println("Get from Cache:" + mcc.get("jc2182"));
}
}
输出
Connection to server sucessfully
set status:{OperationStatus success=true: STORED}
Get from Cache:memcachd
set status:{OperationStatus success=true: STORED}
Get from Cache:redismemcachd