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

来源:互联网 发布:c语言输出最大公约数 编辑:程序博客网 时间:2024/06/13 21:49
     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:要删除的对象的关键字
0 0