皮皮网

皮皮网

【象棋vue源码】【代码敲出爱心源码】【欧耶直播源码】Cassandra 源码分析

时间:2024-11-30 03:37:16 分类:休闲

1.Cassandra实战内容简介
2.LevelDB 源码剖析1 -- 原理
3.盘点 35 个 Apache 顶级项目,码分我拜服了…
4.数据存储扫盲:hbase,码分cassandra,clickhouse,pg,neo4j...
5.Cassandra实战媒体推荐
6.如何设计并实现一个线程安全的 Map

Cassandra 源码分析

Cassandra实战内容简介

       《Cassandra实战》是国内首部专注于Cassandra数据库的专著,由领域先驱和实践者撰写,码分多位数据库专家推荐,码分权威性高。码分该书内容全面,码分象棋vue源码基于最新版Cassandra编写,码分系统讲解了其所有功能和使用方法。码分实战性强,码分不仅包含大量示例代码,码分还通过一个完整的码分在线交易系统实例,展示了从理论到实践的码分全过程。深度挖掘,码分结合源代码分析Cassandra底层机制和工作原理,码分总结最佳实践,码分帮助读者深入理解。

       全书共章,首先介绍NoSQL优势与代表性数据库特性,随后详细讲解Cassandra的安装、配置、数据模型、排序、编程接口等基础知识。通过迭代方式,演示基于Cassandra的在线交易系统开发,理论与实践紧密结合。接着,深入分析Cassandra集群、数据存储结构、更新、读取、压缩机制及启动流程等底层内容。最后,探讨Cassandra在分布式环境中的应用、与Hadoop整合及最佳实践。附录提供示例源代码及Eclipse环境下的编辑指导。

       《Cassandra实战》面向所有对Cassandra感兴趣的读者,不仅能让读者全面掌握Cassandra基础知识和使用方法,还能深入理解其底层机制,以及在复杂现实环境中的应用。这本书是Cassandra学习者和实践者的必备指南。

LevelDB 源码剖析1 -- 原理

       LSM-Tree,全称Log-Structured Merge Tree,被广泛应用于数据库系统中,如HBase、Cassandra、LevelDB和SQLite,甚至MongoDB 3.0也引入了可选的LSM-Tree引擎。这种数据结构旨在提供优于传统B+树或ISAM(Indexed Sequential Access Method)方法的写入吞吐量,通过避免随机的本地更新操作实现。

       LSM-Tree的核心思想基于磁盘性能的特性:随机访问速度远低于顺序访问,三个数量级的差距。因此,简单地将数据附加至文件尾部(日志或堆文件策略)可以提供接近理论极限的写入吞吐量。尽管这种方法足够简单且性能良好,但它有一个明显的缺点:从日志中随机读取数据需要花费更多时间,因为需要按时间顺序从近及远扫描日志直至找到所需键。代码敲出爱心源码因此,日志策略仅适用于简单的数据访问场景。

       为了应对更复杂的读取需求,如基于键的搜索、范围搜索等,LSM-Tree引入了一种改进策略,通过创建一系列排序文件来存储数据,每次写入都会生成一个新的文件,同时保留了日志系统优秀的写性能。在读取数据时,系统会检查所有文件,并定期合并文件以减少文件数量,从而提高读取性能。

       在LSM-Tree的基本算法中,写入数据按照顺序保存到一组较小的排序文件中。每个文件代表了一段时间内的数据变更,且在写入前进行排序。内存表作为写入数据的缓冲区,用于保持键值的顺序。当内存表填满后,已排序的数据刷新到磁盘上的新文件。系统会周期性地执行合并操作,选择一些文件进行合并,以减少文件数量和删除冗余数据,同时维持读取性能。

       读取数据时,系统首先检查内存缓冲区,若未找到目标键,则以反向时间顺序检查各个文件,直到找到目标键。合并操作通过定期将文件合并在一起,控制文件数量和读取性能,即使文件数量增加,读取性能仍可保持在可接受范围内。通过使用内存中保存的页索引,可以优化读取操作,尤其是在文件末尾保留索引块,这通常比直接二进制搜索更高效。

       为了减少读取操作时访问的文件数量,新实现采用了分级合并(Leveled Compaction),即基于级别的文件合并策略。这不仅减少了最坏情况下需要访问的文件数量,还减少了单次压缩的副作用,同时提供更好的读取性能。分级合并与基本合并的主要区别在于文件合并的策略,这使得工作负载扩展合并的影响更高效,同时减少总空间需求。

盘点 个 Apache 顶级项目,我拜服了…

       Apache软件基金会,全称为Apache Software Foundation(ASF),成立于年7月,是世界上最大的最受欢迎的开源软件基金会,是一个非营利性组织,专门支持开源项目。

       目前,ASF旗下有超过+亿美元的欧耶直播源码价值,为开发者提供免费的开源软件和项目,惠及全球数十亿用户。

       接下来,我们将盘点Apache软件基金会旗下的个顶级项目,这些项目在日常开发过程中常常遇到,有的可能已经使用过,而有的则值得学习了解,为未来项目提供参考。

       1. Apache(httpd):Apache HTTP Server,中文名阿帕奇,是一个开源的HTTP服务器,支持在UNIX和Windows系统上运行。它自年4月起成为互联网上最受欢迎的web服务器,年2月庆祝了其岁生日。适用于HTML、等静态资源服务,类似于Nginx,但Nginx功能更为强大。

       2. Tomcat:Apache开源的Java应用服务器,支持Java Servlet、JavaServer Pages、Java Expression Language和Java WebSocket技术。尽管近年来存在安全漏洞,但因其开源、免费的特性,仍被广泛应用于Java领域,成为主流应用服务器。

       3. Commons:包含一系列Java公共组件的项目,提供Java核心API的额外组件,如StringUtils等。提供个实用的类库,极大地方便了Java开发。

       4. POI:提供了一系列Java API对Microsoft Office格式文件进行读写处理,如Excel、Word、PowerPoint等文件的读写,功能强大。

       5. HttpComponents:提供了HTTP及相关协议的Java组件和工具集,包括HttpCore、HttpClient、HttpAsyncClient,其中HttpClient是常用的HTTP客户端。

       6. Logging services:包含Apache的日志服务,如Log4j,是使用最广泛的日志框架,还有Log4j 2、log4php、log4cxx等其他语言的日志框架。

       7. Ant:一个较为老的Java项目编译和构建工具,虽然已经较少使用,但依然存在一定的价值。

       8. Maven:是一个主流的软件项目管理工具,提供项目自动编译、单元测试、打包、发布等生命周期管理。dns日志分析源码

       9. Subversion:一个开源的版本控制软件,用于代码版本控制、文件版本控制,几乎每个开发者都使用过。

       . Struts:一个免费开源的MVC框架,用于创建Java web应用程序,曾风靡一时,但由于漏洞问题,已逐渐被Spring MVC、Spring Boot等替代。

       . FreeMarker:是一个基于Java的模板引擎,允许使用简单而强大的模板语言引用Java代码中的对象来生成HTML页面、电子邮件、配置文件、源代码等。

       . Velocity:一个基于Java语言的模板引擎,允许使用模板语言引用Java对象生成文本输出。尽管长期未更新,不再被Spring Boot 1.5.x版本支持,但仍推荐使用其他模板引擎。

       . Tapestry:一个在Java Web开发界知名的面向组件的Web框架,用于创建高度可伸缩的Web应用程序。

       . Shiro:一个功能强大且易于使用的Java安全框架,提供身份验证、授权、加密和会话管理等功能,有助于快速、轻松地开发和保护企业应用程序。

       . Dubbo:阿里巴巴开源的分布式服务框架(RPC),曾停止维护后又重启维护并捐献给Apache软件基金会,现在在许多企业中仍大量运用。

       . Thrift:一款优秀的、轻量级的RPC框架,最初由Facebook开发,后捐献给Apache软件基金会。支持多种语言,具备高度可扩展性。

       . Zookeeper:一个分布式中间件神器,最初由Google Chubby的一个开源实现,主要用途包括配置中心、分布式锁等,支持高度可靠的分布式服务协调中间件。

       . Curator:Zookeeper的Java客户端,提供一系列高级API和工具,简化了Zookeeper操作,易于使用。

       . SkyWalking:一个可观测性分析平台和应用性能管理系统,提供分布式跟踪、指标监控、性能诊断、度量汇总和可视化的一体化解决方案。

       . ShardingSphere:由一组分布式数据库中间件解决方案组成的开源生态系统,包括JDBC、Proxy、Sidecar(计划中),提供数据分片、才士题库源码分布式事务和数据库编排功能。

       . Lucene:顶级的开源搜索框架,包括核心搜索库(Lucene core)和搜索服务器(Solr),提供强大的索引和搜索功能。

       . ActiveMQ:一款灵活、强大的多协议开源消息中间件,支持JMS 1.1&2.0,目前最流行的Java消息中间件之一。

       . RocketMQ:一款重量级、极具竞争力的消息队列产品,由阿里巴巴于年开源,年捐赠给Apache软件基金会,年正式毕业。

       . Kafka:一款重量级开源项目,最初由LinkedIn公司开发,后捐献给Apache软件基金会。它是一种分布式、高吞吐量的发布订阅消息系统,能够实时处理大量数据。

       . Hadoop:一种高可靠、可伸缩、分布式大数据处理框架,也是大数据行业公认的标准框架。

       . HBase:建立在Hadoop HDFS上的非关系数据库,用于大数据存储,适用于随机、实时的读写访问。

       . Pig:一个基于Hadoop的大数据分析平台,提供类似SQL的面向数据流的高级语言Pig Latin,用于执行Map Reduce任务。

       . Hive:一个基于Hadoop的数据仓库工具,用于提取、转化和加载数据,可以将Hadoop原始结构化数据映射为Hive表,并提供类似SQL的HiveQL语言查询功能。

       . Spark:一个用于大规模数据处理的统一分析引擎,支持无边界和有边界数据流上的有状态计算。

       . Flink:一个分布式处理引擎框架,用于无边界和有边界数据流上的有状态计算,设计用于在所有常见的集群环境中运行。

       . Storm:一个分布式实时计算系统,能够轻松可靠地处理数据流,类似于Hadoop的实时批处理。

       . Cassandra:一款可伸缩、高可用、高性能去中心化的分布式数据库,最初由Facebook为了解决消息收件箱搜索问题而设计。

       . CouchDB:一个面向文档的分布式数据库,以JSON作为存储格式和查询语言,提供直观可靠的RESTful API接口。

       . Groovy:一个功能强大的基于JVM平台的动态编程语言,语法与Java相似,但更简洁、易于学习和高效。

       . NetBeans:一款开源开发工具(IDE),集成开发环境和应用框架,支持Java、JavaScript、PHP等编程语言,最初由SUN公司开发,后被Oracle收购并捐赠给Apache软件基金会。

       总结:这些顶级项目涵盖了基础组件、Web、分布式、搜索、消息中间件、大数据/数据库、编程语言、工具等多个领域,为Java生态系统的发展做出了巨大贡献。尽管有些项目面临淘汰,但它们都曾经辉煌过,正是这些开源项目推动了Java生态的繁荣。希望本文的分享对大家在日常开发中有所帮助。

数据存储扫盲:hbase,cassandra,clickhouse,pg,neo4j...

       本文分享了关于数据存储系统HBase、Cassandra、ClickHouse、PostgreSQL和Neo4j的基本知识,适合数据存储初学者参考。

       HBase

       作为列族数据库,HBase基于Hadoop HDFS,由Apache项目支持,Google和Bigtable的灵感之作。它使用JAVA实现,支持分布式、KV存储,可处理稀疏表和高并发写入。SQL操作需配合Phoenix,强调CP一致性,且支持单行ACID。相关资源包括官方文档、中文教程和源码。

       Cassandra

       Cassandra是Apache项目,Facebook开发,适合大数据写入和实时查询,尤其在欺诈检测和位置服务领域。它采用Dynamo和Bigtable技术,无主架构,提供CQL查询,主副本设计。与HBase相比,Cassandra更偏向OLTP场景,且对写多读少的需求更友好。

       ClickHouse

       ClickHouse是列式关系型数据库,专为OLAP设计,由Yandex研发,支持SQL和高性能读取。它不提供ACID特性,但适合日志分析和时间序列数据。ClickHouse的数据结构和部署特点使其在特定场景下表现出色。

       PostgreSQL

       PostgreSQL作为行式RDBMS,对SQL标准支持好,支持索引和全文检索,可用于OLTP和OLAP。相比MySQL,提供更灵活的复制选项。索引结构丰富,适应多种查询需求。

       Neo4j

       Neo4j是图数据库,专长于存储和查询复杂的图数据,适合知识图谱和社交网络应用。它支持弱模式设计,但不支持碎片处理和复杂的图算法。

       在选择时,需要根据具体应用场景和性能需求来决定,比如HBase适合大量写入和简单查询,而ClickHouse则在分析性能上更胜一筹。

Cassandra实战媒体推荐

       毫无疑问,NoSQL数据库的出现让数据库的选择性变得更加丰富。Cassandra,作为Facebook公司推出的开源NoSQL产品,是其中的佼佼者。它凭借Facebook、Twitter、Digg等知名公司的实际应用案例,证明了自己在复杂生产环境中的强大实力。同时,关系数据库领域也开始关注NoSQL的影响,如MySQL数据库下的InnoDB存储引擎提供NoSQL访问方式。这些都使得Cassandra成为数据库技术领域的一颗明星。

       《Cassandra实战》一书,详细介绍了Cassandra的配置、应用、编译等内容,是深入了解Cassandra的必读书籍。由资深MySQL数据库专家姜承尧撰写,本书不仅深入浅出地阐述了Cassandra的基础知识,还结合源码对一些底层机制和原理进行了分析,对初中级读者来说极具参考价值。

       Cassandra最初由Facebook开发,是分布式NoSQL数据库系统,其数据模型借鉴了Google BigTable,而其架构则融合了Amazon Dynamo的特点,具备良好的可扩展性,广泛应用于大型Web2.0网站。《Cassandra实战》的作者长期维护Cassandra数据库,拥有丰富的实践经验,本书结合源码深入剖析了Cassandra的运行机制与原理,适合读者全面深入地了解Cassandra。

       NoSQL技术是IT领域的热门话题之一,特别是在年,Cassandra以其去中心化和无缝扩展的特性吸引了众多NoSQL粉丝的关注。《Cassandra实战》不仅能帮助读者全面掌握Cassandra基础知识,深入了解其运行机制与原理,阅读本书后,读者将对Cassandra有全面深入的认识。对于喜爱NoSQL的读者来说,看到国内有相关书籍出版,无疑是一大惊喜,强烈推荐《Cassandra实战》。

       在技术领域,很多新出现的技术往往因缺乏合适的应用环境而逐渐消失。而NoSQL技术的幸运在于,它在解决超大规模、高并发的Web 2.0网站应用问题时展现出巨大潜力,从而受到越来越多的关注和重视。亚马逊的Dynamo和谷歌的BigTable是成功的商业NoSQL产品,而开源NoSQL产品如Cassandra的发展也得到了长足的进步。《Cassandra实战》从浅入深地介绍了Cassandra的基础知识和生产环境应用,是全面了解Cassandra的优秀读物,将带领读者探索精彩纷呈的NoSQL世界。

       《Cassandra实战》由张勤撰写,他著有《linux服务器配置全程实录》一书。本书不仅满足了对Cassandra感兴趣的读者需求,同时也为数据库专家和NoSQL先驱提供了深入学习和实践的机会,是深入研究Cassandra不可或缺的资源。

如何设计并实现一个线程安全的 Map

       Map 是一个非常常用的数据结构,一个无序的 key/value 对的集合,其中 Map 所有的 key 都是不同的,然后通过给定的 key 可以在常数时间 O(1) 复杂度内查找、更新或删除对应的 value。

       è¦æƒ³å®žçŽ°å¸¸æ•°çº§çš„查找,应该用什么来实现呢?读者应该很快会想到哈希表。确实,Map 底层一般都是使用数组来实现,会借用哈希算法辅助。对于给定的 key,一般先进行 hash 操作,然后相对哈希表的长度取模,将 key 映射到指定的地方。

       å“ˆå¸Œç®—法有很多种,选哪一种更加高效呢?

       1. 哈希函数

       MD5 和 SHA1 可以说是目前应用最广泛的 Hash 算法,而它们都是以 MD4 为基础设计的。

       MD4(RFC ) 是 MIT 的Ronald L. Rivest 在 年设计的,MD 是 Message Digest(消息摘要) 的缩写。它适用在位字长的处理器上用高速软件实现——它是基于 位操作数的位操作来实现的。

       MD5(RFC ) 是 Rivest 于年对 MD4 的改进版本。它对输入仍以位分组,其输出是4个位字的级联,与 MD4 相同。MD5 比 MD4 来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。

       SHA1 是由 NIST NSA 设计为同 DSA 一起使用的,它对长度小于的输入,产生长度为bit 的散列值,因此抗穷举 (brute-force)

       æ€§æ›´å¥½ã€‚SHA-1 设计时基于和 MD4 相同原理,并且模仿了该算法。

       å¸¸ç”¨çš„ hash 函数有 SHA-1,SHA-,SHA-,MD5 。这些都是经典的 hash 算法。在现代化生产中,还会用到现代的 hash 算法。下面列举几个,进行性能对比,最后再选其中一个源码分析一下实现过程。

       ï¼ˆ1) Jenkins Hash 和 SpookyHash

       å¹´ Bob Jenkins 在《 Dr. Dobbs Journal》杂志上发表了一片关于散列函数的文章《A hash function for hash Table lookup》。这篇文章中,Bob 广泛收录了很多已有的散列函数,这其中也包括了他自己所谓的“lookup2”。随后在年,Bob 发布了 lookup3。lookup3 即为 Jenkins Hash。更多有关 Bob’s 散列函数的内容请参阅维基百科:Jenkins hash function。memcached的 hash 算法,支持两种算法:jenkins, murmur3,默认是 jenkins。

       å¹´ Bob Jenkins 发布了他自己的一个新散列函数

       SpookyHash(这样命名是因为它是在万圣节发布的)。它们都拥有2倍于 MurmurHash 的速度,但他们都只使用了位数学函数而没有位版本,SpookyHash 给出位输出。

       ï¼ˆ2) MurmurHash

       MurmurHash 是一种非加密型哈希函数,适用于一般的哈希检索操作。

       Austin Appleby 在年发布了一个新的散列函数——MurmurHash。其最新版本大约是 lookup3 速度的2倍(大约为1 byte/cycle),它有位和位两个版本。位版本只使用位数学函数并给出一个位的哈希值,而位版本使用了位的数学函数,并给出位哈希值。根据Austin的分析,MurmurHash具有优异的性能,虽然 Bob Jenkins 在《Dr. Dobbs article》杂志上声称“我预测 MurmurHash 比起lookup3要弱,但是我不知道具体值,因为我还没测试过它”。MurmurHash能够迅速走红得益于其出色的速度和统计特性。当前的版本是MurmurHash3,Redis、Memcached、Cassandra、HBase、Lucene都在使用它。

       ä½œè€…:一缕殇流化隐半边冰霜

Java数据库,哪个更好用?

       我将推荐给你们个最高效的Java数据库

       1、MongoDB——最受欢迎,跨平台,面向文档的数据库

       MongoDB是一个基于分布式文件存储的数据库,使用C++语言编写。旨在为Web应用提供可扩展的高性能数据存储解决方案。应用性能高低依赖于数据库性能,MongoDB则是非关系数据库中功能最丰富,最像关系数据库的,随着MongDB 3.4版本发布,其应用场景适用能力得到了进一步拓展。

       MongoDB的核心优势就是灵活的文档模型、高可用复制集、可扩展分片集群。你可以试着从几大方面了解MongoDB,如实时监控MongoDB工具、内存使用量和页面错误、连接数、数据库操作、复制集等。

       2、Elasticsearch ——为云构建的分布式RESTful搜索引擎

       ElasticSearch是基于Lucene的搜索服务器。它提供了分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是比较流行的企业级搜索引擎。

       ElasticSearch不仅是一个全文本搜索引擎,还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索;也是一个带实时分析功能的分布式搜索引擎,并且能够扩展至数以百计的服务器存储及处理PB级的数据。ElasticSearch在底层利用Lucene完成其索引功能,因此其许多基本概念源于Lucene。

       3、Cassandra——开源分布式数据库管理系统

       最初是由Facebook开发的,旨在处理许多商品服务器上的大量数据,提供高可用性,没有单点故障。

       Apache Cassandra是一套开源分布式NoSQL数据库系统。集Google BigTable的数据模型与Amazon Dynamo的完全分布式架构于一身。于开源,此后,由于Cassandra良好的可扩展性,被Digg、Twitter等Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。

       因Cassandra是用Java编写的,所以理论上在具有JDK6及以上版本的机器中都可以运行,官方测试的JDK还有OpenJDK 及Sun的JDK。 Cassandra的操作命令,类似于我们平时操作的关系数据库,对于熟悉MySQL的朋友来说,操作会很容易上手。

       4、Redis ——开源(BSD许可)内存数据结构存储,用作数据库,缓存和消息代理

       Redis是一个开源的使用ANSI C语言编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

       Redis 有三个主要使其有别于其它很多竞争对手的特点:Redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久性目的; Redis相比许多键值数据存储系统有相对丰富的数据类型; Redis可以将数据复制到任意数。Redis 这么火,它都解决了哪些问题?

       5、Hazelcast ——基于Java的开源内存数据网格

       Hazelcast 是一种内存数据网格 in-memory data grid,提供Java程序员关键任务交易和万亿级内存应用。虽然Hazelcast没有所谓的“Master”,但是仍然有一个Leader节点(the oldest member),这个概念与ZooKeeper中的Leader类似,但是实现原理却完全不同。同时,Hazelcast中的数据是分布式的,每一个member持有部分数据和相应的backup数据,这点也与ZooKeeper不同。

       Hazelcast的应用便捷性深受开发者喜欢,但如果要投入使用,还需要慎重考虑。

       6、Ehcache——广泛使用的开源Java分布式缓存

       主要面向通用缓存、Java EE和轻量级容器。

       EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是hibernate中默认的CacheProvider。

       主要特性有:快速简单,具有多种缓存策略;缓存数据有两级,内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过RMI、可插入API等方式进行分布式缓存;具有缓存和缓存管理器的侦听接口;支持多缓存管理器实例,以及一个实例的多个缓存区域;提供Hibernate的缓存实现。Ehcache介绍及整合Spring实现高速缓存。

       7、Hadoop ——用Java编写的开源软件框架

       用于分布式存储,并对非常大的数据用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群进行高速运算和存储。

       Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce则为海量的数据提供了计算。

       8、Solr ——开源企业搜索平台,用Java编写,来自Apache Lucene项目

       Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

       与ElasticSearch一样,同样是基于Lucene,但它对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化。

       9、Spark ——Apache Software Foundation中最活跃的项目,是一个开源集群计算框架

       Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

       Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地。

       、Memcached ——通用分布式内存缓存系统

       Memcached是一套分布式快取系统,当初是Danga Interactive为了LiveJournal所发展的,但被许多软件(如MediaWiki)所使用。Memcached作为高速运行的分布式缓存服务器,具有以下的特点:协议简单,基于libevent的事件处理,内置内存存储方式。

       通过以上的分析,相信你就知道怎么选择了