`
文章列表
以下文章是通过经验总结而得出的结论 在使用mongodb开发工作中,mongodb内存使用非常之大,64G的内存使用了99%的内存 通过整理和查询,了解了mongodb的内存工作原理,特此跟大家分享 mongodb 使用MMAP 将文件映射到内存中 , 这里其实是将文件映射到了虚拟内存,只有使用过的数据才进入物理内存RSS,下面我们来证实一下 wiki:http://www.hudong.com/wiki/mmap 我用python实现了一个mongodb在内存实现方面的功能,key:value我是用的hash,没有使用btree,代码如下仅供参考: 代码在文章后附属 1.启动mong ...
在研究sphinx的时候,看到sphinx的排序算法是LCS 于是小研究了一下LCS,原理: LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1序列,其对应的位置就是最长匹配子串的位置. 下面是字符串21232523311324和字符串312123223445的匹配矩阵,前者为X方向的,后者为Y方向的。不难找到,红色部分是最长的匹配子串。通过查找位置我们得到最长的匹配子串为:21232           0 0 0 1 0 0 0 1 1 0 0 1 0 0 0     0 1 ...
之前一直使用nginx 的upstream,今天有个哥们问我,upstream的调动算法是什么,我说我还真没注意过,使用Haproxy的时候倒是注意过,回来一查,原来也是round-robin,下面是nginx 官方文档给出的说明: This module provides simple load-balancing (round-robin and client IP) across backend servers. Example: upstream backend { server backend1.example.com; server backend2.exa ...
[程序员段子] 1927年12月31日午夜一秒谜案 [图片] 虽说是程序员向,不过内容和编程本身其实并没什么太大关系,请各位听我细细道来。 S ...

Redis Cluster

  Redis trunk版本,提供Cluster功能,下面我们来分析一下这个Cluster实现方式 这里首先执行的是 processCommand 命令,代码如下   /* If this function gets called we already read a whole * command, argments are in the client argv/argc fields. * processCommand() execute the command or prepare the * server for a bulk read ...
Redis Replication 初试 以下代码我就不翻译了,怕翻译不好见笑 ,备注:请您注意红色字体的地方 :)   Redis replication is a very simple to use and configure master-slave replication that allows slave Redis servers to be exact copies of master servers. The following are some very important facts about Redis ...
Phusion Passenger/mod_rails令Rails部署变得更容易 一个旨在从Apache网页服务器上更便捷的部署Ruby on Rails的新项目诞生了。Phusion Passenger/mod_rails似乎已经实现了这个目标,并得到了Rails官方和很多人的推荐。我们采访了Phusion Passenger的创 ...
Number 类型 python 是 int 和 long ruby 是 Fixnum 和 Bignum num = 8 7.times do print num.type, " ", num, "\n" num *= num end produces: Fixnum 8 Fixnum 64 Fixnum 4096 Fixnum 16777216 Bignum 281474976710656 Bignum 79228162514264337593543950336 Bignum 6277101735386680 ...
function map(ls,func){ var d=[]; for(var i=0;i<ls.length;i++){ d.push(func.call(this,ls[i])) } return d; } map([1,2,3],function(n){return n+1}) [2, 3, 4] function select(ls,func){ var d=[]; for(var i=0;i<ls.length;i++ ...
[b]什么是varnish Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。     Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多。在1975年时,储存媒介只有两种:内存与硬盘。但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所 ...
来源:京华时报    在
magent is a simple but useful proxy program for memcached servers. It features: keeps connections to memcached servers supports following memcached commands get gets delete incr decr add set replace prepend append cas event-driven by using libevent library supports ketama algorithm backup servers fa ...
什么是闭包? 闭包并不是什么新奇的概念,它早在高级语言开始发展的年代就产生了。闭包(Closure)是词法闭包(Lexical Closure)的简称。对闭包的具体定义有很多种说法,这些说法大体可以分为两类: 一种说法认为闭包是符合一定条件的函数,比如参考资源中这样定义闭包:闭包是在其词法上下文中引用了自由变量(注 1)的函数。 另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。比如参考资源中就有这样的的定义:在实现深约束(注 2)时,需要创建一个能显式表示引用环境的东西,并将它与相关的子程序捆绑在一起,这样捆绑起来的整体被称为闭包。 #python 中的闭包 ... ...
     进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:     简而言之,一个程序至少有一个进程,一个进程至少有一个线程.     线程的划分尺度 ...
 文/周鸿祎   在互联网领域创业的人越来越多,但究竟怎样才能打造出成功的互联网产品,一直存在着理解的误区,也困扰着很多创业者。   从我个人多年的实践中,我认为互联网产品有几个容易被忽视的特点:第一,互联网产品要有一个灵魂,要符合相关领域的游戏规则,能打动用户的心。如果这一点没做好,产品外观做得再华丽,后台再强大,也很难成功。打动用户的心,这好像是废话,但也最质朴,很多产品其实不是在真正满足用户需求,而是在发明或幻想用户需求,甚至逆着用户需求在做。像国内很多SNS网站都模仿Facebook,尽管很像,但都不太成功,而开心网摸对了用户的脉,中国互联网用户上SNS实际是以开心、娱乐为主,简单、 ...
Global site tag (gtag.js) - Google Analytics