Memcached数据读写方式
作者:Bruce Shi
Memcached存储方式是键值对:
key value
Bruce Chinese
有两种读写命令 :
Telent (非交互式)
nc (交互式)
格式:
set key 0 0 10 \r\n Bruce1982 \r\n
< command name> < key > < flags > < exptime > bytes >\r\n < data block>\r\n
< flag > 是在取回内容时,与数据和发送块一同保存服务器上的任意16位无符号整型(用十进制来书写)。客户端可以用它作为“位域”来存储一些特定的信息;它对服务器是不透明的。
< exptime> 是终止时间。如果为0,该项永不过期(虽然它可能被删除,以便为其他缓存项目腾出位置)。如果非0(Unix时间戳或当前时刻的秒偏移),到达终止时间后,客户端无法再获得这项内容。
< bytes> 是随后的数据区块的字节长度,不包括用于分页的“\r\n”。它可以是0(这时后面跟随一个空的数据区块)。
< data block>\r\n
< data block> 是大段的8位数据,其长度由前面的命令行中的< bytes>指定。
\n 换行且光标移至行首
\r 光标移至行首,但不换行
交互式读写:
[root@cache01 ~]# telnet 172.16.1.21 11211
Trying 172.16.1.21…
Connected to 172.16.1.21.
Escape character is ‘^]’.
set Bruce 0 0 9 # 写入数据,定义key名和属性
Bruce1982 # 写入key value
STORED # 保存成功
set Jimmy 0 0 9 # 写入数据,定义key名和属性
Jimmy22
CLIENT_ERROR bad data chunk
ERROR #保存失败,因为key value jimmy22不是9位字符
get Bruce # 读取数据
VALUE Bruce 0 9 # 返回key属性
Bruce1982 #返回key value
END
set Bruce02 0 5 9 # 这里定义一个key,expire time是5秒
Brcue1099
STORED
get Bruce02 #过5秒去读取数据
END#读取失败
非交互式读写:
[root@cache01 ~]# printf “get Bruce\r\n”|nc 10.0.0.21 11211
VALUE Bruce 0 9
Bruce1982
END
[root@cache01 ~]# printf “set Bruce03 0 0 9\r\nBruce1982\r\n”|nc 10.0.0.21 11211
STORED
安全措施:一般只允许内网用户,如开发人员和运维人员读写Memcache,修改配置文件中,添加监听的内网ip
[root@cache01 ~]# vim /etc/sysconfig/memcached
PORT=“11211”
USER=“memcached”
MAXCONN=“1024”
CACHESIZE=“64”
OPTIONS="-l 172.16.1.21" # 设定监听内网ip,
退出保存 并重启Memcached来更新配置,注意生产环境中不能Memcached,会造成生产事故。
测试:
[root@cache01 ~]# printf “get Bruce03\r\n”|nc 10.0.0.21 11211
Ncat: Connection refused. # 外网用户访问失败
[root@cache01 ~]# printf “get Bruce03\r\n”|nc 172.16.1.21 11211
END
- Spring Batch 之 Sample(游标方式读写DB数据表)
- Spring Batch之Sample(游标方式读写DB数据表)(二)
- C++读写txt文件方式以及基于opencv的Mat数据类型读写txt文件
- read/write数据读写传输方式(转)
- 用CSV文件读写数据的两种方式(转)
- BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据
- Redis简介、与memcached比较、存储方式、应用场景、生产经验教训、安全设置、key的建议、安装和常用数据类型介绍、ServiceStack.Redis使用(1)
- memcached实战系列(六)理解Memcached的数据存储方式
- 《用二进制方式向文件读写一组数据》
- Spring Batch 之 Sample(游标方式读写DB数据表)(八)
- 安卓存储数据和文件系列1:读写sdCard方式
- memcached实战系列(六)理解Memcached的数据存储方式
- Spring Batch 之 Sample(游标方式读写DB数据表)(八)
- Java字符流读写数据的两种方式
- 创建表空间以及用户,授予权限,查看表空间名称及大小,物理文件的名称及大小,数据库的创建日期和归档方式,数据库的版本,数据库库对象,表空间的使用情况,表空间读写
- 以socket连接方式向memcached存储数据
- C语言:用二进制方式向文件读写一组数据(fread、fwrite)
- Android数据存储方式(一)文件读写操作
- memcached实战系列(七)理解Memcached的数据过期方式、新建过程、查找过程
- 用CSV文件读写数据的两种方式