`
文章列表
近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源。他们的最好成绩,1秒钟 可以并发6次,赶在Database入库前,Cache进行Missing Loading前,强占这其中十几毫秒的时间,进行恶意攻击。 为了应对上述情况,做了如下调整:   更新数据时,先写Cache,然后写Database(双写),如果可以,写操作交给队列后续完成。 限制统一帐号,同一动作,同一秒钟并发次数,超过1次不做做动作,返回操作失败。 限制统一用户,每日动作次数,超限返回操作失败。 要完成上述操作,同事给我支招。用Memcached ...
一、Memcached Client简要介绍 Memcached Client目前有3种: Memcached Client for Java SpyMemcached XMemcached 这三种Client一直存在各种争议: Memcached Client for Java 比 SpyMemcached更稳定、更早、更广泛; SpyMemcached 比 Memcached Client for Java更高效; XMemcached 比 SpyMemcache并发效果更好。 用数据来说话,参考官方性能对比: Memcached Client for Java ...
08年的时候接触过Memcached,当时还对它的客户端产品嗤之以鼻,毕竟手工代码没有各种ORM原生XML配置方便。尽管如此,Memcached现在已经成了服务器架构里不可或缺的一部分!一、下载 1.Libevent 简单的说就是一个事件触发的网络库,Memcached离不开它。 Shell代码   wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.17-stable.tar.gz   2.Memcached 今天的主角 Shell代码   wget h ...
在mongo根据内嵌文档查询实例 Sql代码   > db.teacher.find ()   {   “_id” : ObjectId(“4e255ad2717ed94f4532ac08″),“subject”:”Chinese”   “students” : [   {   "name" : "tom",   "age" : "14",   "hobby" : "volleyball"   },   {   "na ...
安装Spring for Mongodb Spring项目为方便对Mongodb的操作,建立了spring-data的子项目,地址在: http://www.springsource.org/spring-data/mongodb,目前版本是1.0.0M2阶段,已支持对 Mongodb的一系列基本操作。我们先从http://www.springsource.org/spring-data/mongodb中下载相关 的包:spring-data-document-1.0.0.M2.zip,下载解压后,将解压后的四个JAR文件放到工程路径的lib库中,本文中还 将使用Spring 3.0.4的 ...
mongodb数据库同样离不开必要的维护,如备份、恢复、导入、导出。 其实备份和恢复比导入和导出要方便些,而且一般不会出错,所以大部分时候使用备份和恢复操作就可以了 1. 备份Mongodb mongodump -h test.xxxx.com:52000 -d dataname -o /home/aa/dev/mongodb/data mongodump mongo导出数据库命令 mongodump --help 可以查看该命令下所有的帮助 -h 导出源 -d 要导出的数据库名称 -o 数据库要导出的位置 在终端滚过N行之后,数据库导出完成,可以去/home/aa/dev/m ...
上一篇文章: http://blog.csdn.net/wangpeng047/article/details/7705588介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过前一篇文章我们对MongoDB有了全面的认识和理解。现在我们就用Java来操作MongoDB的数据。   开发环境: System:Windows IDE:eclipse、MyEclipse 8 Database:mongoDB 开发依赖库: JavaEE5、mongo-2.5.3.jar、junit-4.8.2.jar Email:hoojo_@126.com Blog:http: ...
上一节我们讲解了对于mongodb的一些认识和概念,那么接下来就要切实步入mongodb的学习中了。 mongodb不像关系型数据库有很强大的GUI客户端,虽然mongodb也有,但功能和稳定性实在不敢恭维,所以操作mongodb我们大部分 都是用类似cmd命令的方式(mongodb称为shell操作)来完成,因此学好mongodb shell操作是非常重要的基础。 一、准备工作 1、 下载mongoDB 下载地址:http://www.mongodb.org/downloads 选择合适你的版本 相关文档:http://www.mongodb.org/display/DOCS ...
一、基本概念 MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前NoSQL 数据库产品中最热门的一种。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式,MongoDB 使用C++开发。MongoDB 的官方网站地址是:http://www.mongodb.org/,大家可以在此获得更详细的信息。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json 的bson 格式,因此可以存储比较复杂的数据类型。MongoDB 最大的特点是他支持的查询语言非常强大,其语法有点类 ...
向量空间模型请参照全文检索的基本原理的blog 问题: 在你的文章中提到了: 于是我们把所有此文档中词(term)的权重(term weight) 看作一个向量。    Document = {term1, term2, …… ,term N}    Document Vector = {weight1, weight2, …… ,weight N}    同样我们把查询语句看作一个简单的文档,也用向量来表示。    Query = {term1, term 2, …… , term N}    Query Vector = {weight1, weight2, …… , ...
评分功能,在全文检索中也算是一个非常重要的模块,因为评分的好坏,直接决定着用户搜索匹配的相关性,试想一下假如用户输入了一个搜索词,搜索引擎返回了一大堆不相关的信息,或者没有层次性,重点性的结果,那么看 ...

跳表SkipList

  1.聊一聊跳表作者的其人其事 2. 言归正传,跳表简介 3. 跳表数据存储模型 4. 跳表的代码实现分析 5. 论文,代码下载及参考资料    <1>. 聊一聊作者的其人其事    跳表是由William Pugh发明。他在 Communications of the ACM June 1990, 33(6) 668-676 发表了Skip lists: a probabilistic alternative to balanced trees,在该论文中详细解释了跳表的数据结构和插入删除操作。   William Pugh同时还是FindBu ...
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙。 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程,就是按照全文检索的基本过程,将倒排表写成此文件格式的过程。 Lucene的搜索过程,就是按照此文件格式将索引进去的信息读出来,然后计算每篇文档打分(score)的过程。 本文详细解读了Apache Lucene - Index File Formats(http://lucene.apache.org/java/2_9_0/fileformats.html) 这篇文章。   ...
Lucene总的来说是: 一个高效的,可扩展的,全文检索库。 全部用Java实现,无须配置。 仅支持纯文本文件的索引(Indexing)和搜索(Search)。 不负责由其他格式的文件抽取纯文本文件,或从网络中抓取文件的过程。 在Lucene in action中,Lucene 的构架和过程如下图, 说明Lucene是有索引和搜索的两个过程,包含索引创建,索引,搜索三个要点。 让我们更细一些看Lucene的各组件: 被索引的文档用Document对象表示。 IndexWriter通过函数addDocument将文档添加到索引中,实现创建索引的过程。 ...
一、总论 根据http://lucene.apache.org/java/docs/index.html定义: Lucene是一个高效的,基于Java的全文检索库。 所以在了解Lucene之前要费一番工夫了解一下全文检索。 那么什么叫做全文检索呢?这要从我们生活中的数据说起。 我们生 ...
Global site tag (gtag.js) - Google Analytics