首页 > 其他分享 >大数据量缓存应用--memcached+magent

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

时间:2022-12-16 17:03:08浏览次数:60  
标签:缓存 .- tar -- Memcached 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 address, 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。文件同步读写。

 

有点困了,下次继续这个主题...

 

标签:缓存,.-,tar,--,Memcached,magent,数据量,memcached
From: https://blog.51cto.com/u_4172728/5947922

相关文章

  • Nginx + Memcached + Tomcat 集群 session 共享
    一、Tomcat的配置安装既然是要集群,那自然不可能是一个Tomcat咯。将tomcat的安装包apache-tomcat-6.0.35-windows-x86解压到X:/(这个路径可以自定义),重命名加压目录,我将这个......
  • 动态载入树 (ASP+数据库)
    ASP+ACCESS在数据量达100万条记录下,载入速度仍然惊人....//网上转载.忘了作者... :)//********************** Index.asp************************//1<%@LAN......
  • PHP将秒数转换成时分秒
    functionchangeTimeType($seconds){$seconds=intval($seconds);if($seconds>3600){$hours=intval($seconds/3600);$time=$hours.":".gmstrftime('%......
  • Mysql主从复制详解
    目的:主从服务器设置的稳健性得以提升,如果主服务器发生故障,可以把本来作为备份的从服务器提升为新的主服务器。在主从服务器上分开处理用户的请求,可获得更短的响应时间。用从......
  • Android runInstallCreate from pm command asks to run as user -1 but is calling f
    android使用pm静默安装pminstall-i“包名”-rapkPath提示错误:Android runInstallCreatefrompmcommandaskstorunasuser-1butiscallingfromuser0随......
  • SQL语句的REVERSE函数,关键字用法
    1.函数。select reverse(123456)fromdual;select reverse('123456') fromdual;2.关键字。declarevnumber;cnumber;beginv:=100;forcinreverse......
  • LINQ 查询简介 (C#)
    查询是一种从数据源检索数据的表达式。查询通常用专门的查询语言来表示。随着时间的推移,人们已经为各种数据源开发了不同的语言;例如,用于关系数据库的SQL和用于XML的......
  • java编码工具
    3.编码工具​工欲善其事,必先利其器。目前编码工具琳琅满目,大家可根据自己需求自己选择工具。3.1文本编辑器收费UltraEditEditPlus免费​subli......
  • 物联网 - 使用Azure IoT Suite来促进物联网开发
    InternetofThings-UseAzureIoTSuitetoBoostIoTDevelopmentBy ​​DawidBorycki​​​ |June2017| ​​GettheCode​​物联网-物联网套件使用Azure......
  • CentOS上安装tree插件获取目录以及子目录下所有文件
    场景在部署系统时需要列出当前目录下以及各个子目录下所有的文件,方便排查文件路径等信息。也对整个项目的目录一目了然。插件安装yum-yinstalltree常用命令tr......