您的位置:首页 > 其它

memched1.0源码阅读(1)——介绍

2016-05-30 17:30 239 查看
1、介绍
memched是一个高性能的分布式内存对象缓存系统。它通过在内存中数据来减少磁盘io的次数。memched是一个基于键值对存储的hashmap。
memched可以在内存中存储任意数据,每块数据被称为一个对象(item),它有两个部分组成:key和value。
memched基于libevent开发,使用了
JudySL http://judy.sourceforge.net/这个第三方库(我不知道其他版本还有没有使用这个库,在1.0版本中使用了这个库)。网络通信部分交给libevent处理,而数据存储部分则交给了JudySL来处理。
memched中的内存分配和回收由slabs分配器实现。slabs内存分配器类似于Linux中的slabs内存子系统(想了解Linux的slabs子系统可以自行查看相关文档)

2、启动
启动memched时使用的命令:
-d 以守护进程的方式运行memched
-m 设置memched可以使用的内存的大小,单位是MB
-l 设置监听的ip地址,通常不用设置
-p 设置监听的端口,默认在11211监听
-u 指定用户
-f 设置增长因子(目前还不大懂)

3、用法
memched的几种用法:
(1)存储。相关命令set、add、replace。告诉服务器存储一些由键值对标识的数据。客户端发送一行命令,后面跟着数据块;
(2)读取。相关命令get。告诉服务器返回由键值指定的数据。
(3)删除。相关命令delete。告诉服务器删除某个对象。
(4)查询状态。相关命令stat。查询服务器的状态。
(5)其他命令。version、quit等命令。

4、命令的详细用法
(1)存储命令
<command> <key> <flags> <exptime> <bytes>
<data block>
command:是set(不存在的时候增加、存在的时候替换)、add(不存在的时候添加)、replace(替换)等
key:关键字
flags:其他的一些标志
bytes:数据块的长度(字节数)
Data block:数据块

(2)读取命令
<command> <key1 key2 ...>
command:就是get
key:要读取的数据的关键字,可以包含多个关键字,使用空格隔开

(3)删除命令
<command> <key>
command:delete
key:要删除的对象的关键字
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: