内存存储
sunnydogzhou
linux,java,c,网络,分布式,NoSql
展开
-
Memcache 协议(中英对照)
Memcache 协议(中英对照) 不容易见到的资料,呵呵 协议Protocolmemcached 的客户端使用TCP链接 与 服务器通讯。(UDP接口也同样有效,参考后文的 “UDP协议” )一个运行中的memcached服务器监视一些(可设置)端口。客户端连接这些端口,发送命令到服务器,读取原创 2010-04-20 10:34:00 · 626 阅读 · 0 评论 -
memcached 的配置以及在php中的使用
一、memcached 简介在很多场合,我们都会听到 memcached 这个名字,但很多同学只是听过,并没有用过或实际了解过,只知道它是一个很不错的东东。这里简单介绍一下,memcached 是高效、快速的分布式内存对象缓存系统,主要用于加速 WEB 动态应用程序。二、memcached 安装首先是下载 memcached 了,目前最新版本是 1.1.12,直接从官方网站即可下载到 memcached-1.1.12.tar.gz。除此之外,memcached 用到了 libeven转载 2010-08-12 17:05:00 · 671 阅读 · 0 评论 -
基于共享内存的key-value存储
<br /><br /> 1定义<br />MemKeyValue是一个基于共享内存的随机访问存储模型,可供不同的进程同时调用。<br /> 2应用场景及需求<br />MemKeyValue 主要应用在如下场景,有一份数据,只用初始化一次,然后多个进程都会用到这份数据。采用MemKeyValue共享内存的方式,可以多个进程同时共享一份数据,从而能够达到节省内存,减少操作的目的。<br /> <br />根据应用场景,提炼出具体的需求<br /> <br /> a共享内存<br />原创 2010-10-04 11:28:00 · 3658 阅读 · 0 评论 -
开辟共享内存时遇到错误
<br />最近需要对tracer服务进行扩容,一来是因为SKVS顺序写更快,所以将不相干的服务都移到了pageDB的机器上,这样就空下来不少内存。二来是因为系统初期设计的1.6亿条url的容量好像不够,10月份上线一个月不到,就已经写到1.4个亿了,所以扩容不得不做。<br /> <br />就在更该共享内存的时候,出现了问题。<br /> <br />扩容前,4个ls,每个ls开2G内存作为共享内存的存储。<br />扩容后,4个ls,每个ls开3G内存作为共享内存存储。<br /> <br />悲剧也原创 2010-11-02 01:50:00 · 5469 阅读 · 0 评论 -
Ministored--基于libevent的简单网络内存存储
<br />Ministore做完以后,一直有个想法,给ministore添加一个网络的接口,这样ministore就可以可以提供网络服务,从而能够提供更多的使用场景。去年写了一个大概的框架之后,忙于手头的各种工作,就放在这里。今年在做代码整理的的时候,发现以前ministore实现的功能最好拆分出来做成一个单独的服务。于是把尘封的代码拿出来,在去年的工作上继续。<br /> <br />在网络协议上打算采用http协议,为啥子是http,因为http简单,可以支持多种语言,c、java、php都可以。服务原创 2011-05-18 20:05:00 · 1366 阅读 · 0 评论 -
在http协议中传输二进制的数据--base64实现
<br />做Ministored的时候发现一个问题,用http传输二进制的数据时,需要将二进制做一下转化,出现了以下的问题。<br />简单概括如下:<br />1) 不知道传输字节的具体长度,如传输的int类型,将int类型之间转为char以后,丢失掉了长度的信息,如数字1234567,本来只有4个字节,但是转化成文本的“1234567”是有7个字节。在int类型的时候固然好办,但是一个数组的时候,经过转化以后,在转化回来就很麻烦了。<br />2) 对于一些数字,二进制传输Server是没法处理的。如原创 2011-05-18 20:22:00 · 17203 阅读 · 1 评论 -
基于libevent2.0的ministored的http框架--server端
将Ministored从libevent1.4升级到2.0以后,花了两天额外的时间来做调试这个http的框架。按照开发的设想,这个ministored支持四个基本的操作put、get、delete、status;在经过几个版本的改动以后,协议如下:1)数据通过post的方式提交2)各个基本操作通过一个自定义的Http的头method来区分。而client和server之间的传送的二进制数据通过base64编码以后的字符串发送。数据附加在post操作提交的字符缓冲区中。 2.1 put操作需要的数据k原创 2011-05-22 18:31:00 · 3675 阅读 · 2 评论