精华内容
下载资源
问答
  • 现在有个需求就是,用一台单独的服务器,做缓存服务器。其他几个系统的共享数据都放到这个缓存(内存缓存)服务器里。到时,这几个服务器能够共同使用和维护这个缓存。 请问各位有什么好的技术来实现吗?
  • 大数据量缓存应用--memcached+magent

    千次阅读 2013-05-19 18:51:08
    越来越感觉到DB力不从心,在面对千万级用户的应用时,DB面对平凡的curd,特别是查询的时候,早已不堪重负!如何解决高并发下数据的查询效率,在应用中显的越来越重要,好了废话不多说,首先介绍下magent与...

    越来越感觉到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。文件同步读写。

     

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

     

    展开全文
  • 缓存最大数据量

    千次阅读 2019-02-17 15:31:36
    缓存最大数据量指的是在缓存中能够处理元素的最大个数或者所能使用的最大存储空间。 通常各种缓存机制都会对缓存最大数据量进行限定,可以是固定大小的存储空间,也可以是集合个数或者是由操作系统所能分配和处理的...

    缓存最大数据量指的是在缓存中能够处理元素的最大个数或者所能使用的最大存储空间。

    通常各种缓存机制都会对缓存最大数据量进行限定,可以是固定大小的存储空间,也可以是集合个数或者是由操作系统所能分配和处理的存储空间决定。

    当超过缓存机制所允许的最大的数据量时,系统会进行相应的处理,一般有4中处理方式:

    1.停止服务,所有的缓存数据将被清除

    2.拒绝写入不再对缓存数据进行更新

    3.根据缓存更新策略清楚旧数据

    4.在方式3的基础上,将淘汰的旧数据备份,腾出新空间。

    在实际的应用中,通常是以方式3、方式4最为常见。

    展开全文
  • html里面什么缓存适合大量数据 html里面什么缓存适合大量数据
  • 基于大数据量缓存查询实现方案

    万次阅读 2012-10-29 17:16:24
    业务、应用系统最常用的就是基于数据的查询,这不同于宏观意义上的系统各个层面优化(应用端、服务端、DB端等等),基于数据的... 基于数据的查询往往首要考虑的是缓存数据,那么缓存的前提:  1、数据不会实时变化

           业务、应用系统最常用的就是基于数据的查询,这不同于宏观意义上的系统各个层面优化(应用端、服务端、DB端等等),基于数据的查询更多时候需要考虑数据的规模、用户的习惯、数据的变化性等因素,但同时数据查询的优化也贯穿着系统的各个层面。本文主要针对一个特定领域进行分析,以供各位参考!
           基于数据的查询往往首要考虑的是缓存数据,那么缓存的前提:
           1、数据不会实时变化
           2、每个用户最大范围的可以共用数据集合
          基于缓存的实现方案,通常需要这样的一个缓存框架来完成,OK,接下来首先来应用温老师的ADMEMS矩阵方法进行结构化的需求分析,来看看我们的关键性需求、功能以及约束影响:

     

    功能

    质量

    约束

    业务级需求

    当前:管理游戏类复杂产品的数据缓存

    未来:管理其他类产品的数据缓存

    新产品上线快,发布频繁

    缓存数据的关键性

    支持DB直连和缓存切换

    与关联业务系统缓存同时生效

    支持缓存更新、刷新(5分钟时效)

    支持缓存故障恢复

    支持其他类产品缓存管理

    用户级需求

    手机平台

    Web平台

    游戏平台

    高可用

    易用性

    性能:缓存查询、吞吐

    分布式的使用要求

    不同平台的差异因素

    开发级需求

     

    数据安全机制

    可重用、可扩展

     

     

    补充说明:
    1、可扩展性
    不同类型数据库的以插件方式接入缓存体系(Oracle、SQL Server等等)
    2、可用性
    数据获取重试机制、缓存刷新重试机制、缓存通知重试机制
    3、性能
    以最小粒度为数据缓存更新点
    4、故障恢复
    分布式服务器、单台WEB下线,上线,缓存数据重新拉取

     

    废话不多说,针对以上的需求分析,现对该缓存的预设计实现方案陈述如下:



    另外,考虑到Cache应用到不同的系统层面,也应一并考虑到如下的优化:
    1、应用端
    如果是列表类,动态变化的查询,可采用分页查询
    另外根据业务需求,可将首页或查询命中率较高的页数据进行缓存
    同时可配合异步查询的方式进行
    2、数据库
    查询优化,针对不同的查询维度,进行分区并建立合适的索引,适当时候考虑数据迁移
    另外建立数据同步机制,完成读写分离

     

    其他,待补充!

     

    其他参考:

    1、海量数据的缓存

    2、J2EE综合:如何处理大数据量的查

    3、大数据量分页显示

    4、大数据量分页查询方法

    5、结合索引优化SQL语句提高数据库查询效率

     

    展开全文
  • 实现方法很简单,遇到一个问题,数据量时会出现内存溢出的问题。Google了一下,修改了缓存的方式,解决问题。 require_once 'PHPExcel.php'; //设定缓存模式为经gzip压缩后存入cache(还有多种方式请百度) $...

    最近做一个WEB项目,需要用到Excel的导入导出。选用了经典的PHPExcel来实现。实现方法很简单,遇到一个问题,数据量较大时会出现内存溢出的问题。Google了一下,修改了缓存的方式,解决问题。

    require_once 'PHPExcel.php';
    
    //设定缓存模式为经gzip压缩后存入cache(还有多种方式请百度)
    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
    $cacheSettings = array();
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
    
    $objPHPExcel = new PHPExcel();
    
    //读入上传文件
    $objPHPExcel = PHPExcel_IOFactory::load($_FILES["excel"]["tmp_name"]);
    
    //内容转换为数组
    $indata = $objPHPExcel->getActiveSheet()->toArray();
    



    展开全文
  • 数据量大,要用到磁盘存储。 初步思路: 对查询词进行分类,对每个类别的查询词进行排序,得到top-k个放入内存缓存。 分类:用hash,不过要自己重写hashcode函数 是否要用到归并排序? 索引? 如何...
  • 利用Cache缓存数据DataTable数据提高大数据量访问性能 引言:在数据量不大的情况下,程序怎么写基本上性能差别不大,但是当我们面对数以万计的数据的时候,我想性能就是个不得不考虑的问题了,每写一个方法,每填充...
  • 正常的缓存命中率也会因为不同的缓存应用而不相同,咱们以query cache为例来说明一下,经过服务器一段时间的运行和积累,query cache的命中率在98%以上,而另外的能在85%就算是很高了,这个跟我们的缓存机制的实现...
  • 如果服务器性能不好可能立即就死在那里了,所以在大数据量频繁访问的页面上,我们就必须考虑如何提高页面的性能了,本文将提供一种用cache提高访问性能的方法来解决此问题,在很大程度上提高页面加载
  • 如果服务器性能不好可能立即就死在那里了,所以在大数据量频繁访问的页面上,我们就必须考虑如何提高页面的性能了,本文将提供一种用cache提高访问性能的方法来解决此问题,在很大程度上提高页面加载数
  • 如果数据库里有十万条数据,redis初始化时,怎么样才能更高效将数据加入缓存
  • ReentrantReadWriteLock详解:缓存和大量数据并发访问
  • 大量数据放入缓存的高效办法

    千次阅读 2015-12-31 15:32:00
    2、Map的最大的优点就是get非常快,因为他对每一个key都做了哈希算法,所以在Java大数据量的时候,可以使用Map和数组结合的方式,用Map来存储 对象的key 且 该对象在数组中的索引作为Map的value,通过value和数组的...
  • 上个月在做一个基于nodejs的数据发送和解析,用mqtt做中转,短时间读取大量数据nodejs经常出现内存溢出的情况,发送端读取大量的文件数据加密传输,接收端收到数据后解码存储到数据库 先说发送端, 首先记录一下...
  • Cache 即高速缓存 ,我想很多人对他的第一印象一定像我一样,感觉他一定能提高系统得性能和运行速度。的确。Net推出cache的初衷确实是这样的。那么cache是如何提高系统性能与运行速度呢?是不是在任何情况下用cache...
  • 先说说应用的场景,要做一套机票查询和预定以及支付的系统。 连接第三方机票数据接口, ...内存级别的缓存的话 6G数据量,而且多条件的查询,不知道如何处理了。。 望有相关经验的大神,提供一些思路,谢谢!
  • 在前面的四篇文章中,我们从数据持久化层来聊了一些架构设计方案,来处理数据量大读写缓慢的问题。但是架构设计并不是只有这一方面的设计思路,本篇开始我们来从缓存层面来一起看看如何设计。 一、业务场景四 在一个...
  • spring security 用户量缓存问题

    千次阅读 2012-05-04 10:39:20
    使用spring security时,一般会在系统加载是初始化用户、资源等信息到缓存中,但是如果此时用户的数量很,此时初始化缓存将会造成内存溢出,如果解决该问题,我们可以考虑在系统加载是并不去进行初始化用户数据到...
  • 在高访问量的web系统中,缓存几乎是离不开的;但是一个适当、高效的缓存方案设计却并不容易;所以接下来将讨论一下应用系统... 数据库的瓶颈 1 数据量 关系型数据库的数据量是比较小的,以我们常用的MySQL为例,...
  • public List TrafficLog { get { List result = new List(); if (Session["TrafficLog"] == null || (DateTime.Now - (DateTime)Session["Refunsh"]).Minutes > 10) ...//默认查询当前月的数据 var monthNow = C
  • JAVA数据缓存之内存缓存 ...2.数据量比较大 从大数据量里边拿一小部分数据 一般是一个人的相关数据 3.非集群环境 集群环境使用内存缓存会使内存的使用量变化过大 集群环境数据量不是特别大推荐redis数据缓存

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,185
精华内容 5,674
关键字:

大数据量缓存