大数据量缓存应用--memcached+magent

ronaldoc 贡献于2013-05-22

作者 Admin  创建于2011-10-29 06:05:00   修改者Administrator  修改于2013-05-16 09:24:00字数2253

文档摘要:越来越感觉到DB力不从心,在面对千万级用户量的应用时,DB面对平凡的curd,特别是查询的时候,早已不堪重负!如何解决高并发下数据的查询效率,在应用中显的越来越重要,好了废话不多说,首先介绍下magent与memcached.
关键词:

越来越感觉到DB力不从心,在面对千万级用户量的应用时,DB面对平凡的curd,特别是查询的时候,早已不堪重负!如何解决高并发下数据的查询效率,在应用中显的越来越重要,好了废话不多说,首先介绍下magent与memcached   一、 magent magent是一款开源的Memcached代理服务器软件,其项目网址为:http://code.google.com/p/memagent/   1. 安装: 1.mkdir magent   2.cd magent/   3.wget http://memagent.googlecode.com/files/magent-0.5.tar.gz   4.tar zxvf magent-0.5.tar.gz   5./sbin/ldconfig   6.sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile   7.make   8.cp magent /usr/bin/magent   9.cd ../    2. magent  命令参数说明: 1.-h this message   2.-u uid   3.-g gid   4.-p port, default is 11211. (0 to disable tcp support)   5.-s ip:port, set memcached server ip and port   6.-b ip:port, set backup memcached server ip and port   7.-l ip, local bind ip add ress, default is 0.0.0.0  8.-n number, set max connections, default is 4096  9.-D do not go to background   10.-k use ketama key allocation algorithm   11.-f file, unix socket path to listen on. default is off   12.-i number, max keep alive connections for one memcached server, default is 20  13.-v verbose    二、memcached   http://memcached.org/ 1. 安装libevent   1. tar zxvf libevent-1.4.13-stable.tar.gz 2. cd libevent-1.4.13-stable 3. ./configure --prefix=/usr 4. make 5. make install   2. 安装memcached   1. tar zxvf memcached-1.4.5.tar.gz 2. cd memcached-1.4.5.tar.gz 3. ./configure --with-libevent=/usr configure 需要加 libevent的安装路径 1. make 2. make install 3. 安装完成后会把memcached放到 /usr/local/bin/memcached 启动: /usr/local/bin/memcached -d -m 512 -u root -p 11211 -c 10000 -M -f 1.1 -P /tmp/memcached.pid 三、配置memcached   与 magent,无图无真相,一图抵千言:     magent与memcached 是可以混搭的,不必死板的一个magent s-memcached s-memcached b-memcached 上图此模型已经能够很好的解决一个节点,一组服务器的缓存数据服务,但是如果在北方网通架设了一组服务器,同时在南方电信又架设了另外一组服务器,那么这两组相对独立的节点之间如何做到数据的同步与共享,基于magent与memcached的解决方案如下:   需要注意的是,两组magent的配置最好完全一致,比如: 北方的magent配置为:magent s-memcached1 s-memcached2 b-memcached3 那么南方的magent配置也为:magent s-memcached1 s-memcached2 b-memcached3  其顺序都是一致的,因为magent在分配key到memcached上时只是简单的使用散列余数算法。 当然如果你够懒,那么你可以直接连接备份magent,因为所有的数据上面都有。   有个特别要注意的地方是: 1:其中一台Memcached死掉,从magent取数据,数据会从备份的Memcached取出,保证用户不受影响. 2:Memcached重启复活,由于这台Memcached重启后无数据,因此magent取得的将是空值,尽管备份Memcached还有数据。可采用定时维护服务器,恢复memcached。 3。如果Memcached死掉,备份机同时死掉,那么只能说明你够倒霉,此时此刻你或许能见到上帝。   四、java客户端 推荐使用:xmemcached http://code.google.com/p/xmemcached/   五、缓存与DB的同步 比较保险的做法是:查询的时候从缓存中取,add、updae、delete的时候同时操作缓存与DB。 当然你也可以定时同步缓存与DB的数据,个人认为不同的业务应该有不同的选择! 我在实际的应用中是同时使用这两种方式,比如用户个人信息之类的内容,就用定时同步的方式。   六、搜索引擎+缓存+DB 这个主题比较大,可以分为: 1。文件结构的存储代替DB持久化存储。 2。缓存在搜索引擎中的使用--文本库与索引库的缓存实现。 3。使用搜索引擎进行统一的数据查询。 4。文件同步读写。   有点困了,下次继续这个主题...

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档