《Redis深度历险》Chapter 1 Learn Note

1.7 布隆过滤器其数据结构包含一个大型的位数组和若干个不一样的无偏hash函数。所谓无偏即能够把元素的hash值计算得比较均匀,让元素被映射到位数组中的位置比较随记。输入预计元素数量:n错误率:输出位数组长度 lhash函数的最佳数量 [code lang="cpp"k = 0.7 * (l / nf = 0.6185 ^ (l / n[/code空间占用估计http://krisives.github.io/bloom-calculator误判率[code lang="shell"f = (1 - 0.5^t) * k # k 是 hash函数的最佳数量[/code应用爬虫重复URL过滤NoSQL数据库领域,降低磁盘IO垃圾邮箱过滤1.9 漏斗限流维护漏斗属性:漏斗容量、漏嘴流水速率、漏斗剩余容量与上一次漏水时间。每次灌水(请求)前,进行计算给漏斗腾出空间。能够腾出多... Read More

《MySQL High Availability》Chapter 1&3 Learn Note

Part I. High Availability and ScalabilitOne of the database features that supports both high availability and scalability in an application is replication.Replication is used to create redundancy in the database layer as well as to make copies of the databases available for scaling the reads.Part I covers how you can use replication to ensure high availability and how you can scale your system.Chapter 1 Introductio... Read More

Solve the problem “proc_open(): unable to create pipe Too many open files” while using phar

I feel quite confident in altering phar.c - I shall do so as soon as my new laptop arrives, the old and faithful one having given up the ghost some days ago - but I think the problem lies rather in compiling (and distributing) the resulting phar.so module, which must match the existing PHP installation.For me on OpenSuSE for example the easiest option seems to be to download the php5-phar SRPM and... Read More

理解Linux系统/etc/init.d目录和/etc/rc.local脚本

当你查看/etc目录时,你会发现许多rc#.d 形式存在的目录(这里#代表一个指定的初始化级别,范围是0~6)。在这些目录之下,包含了许多对进程进行控制的脚本。这些脚本要么以"K"开头,要么以"S"开头。以K开头的脚本运行在以S开头的脚本之前。这些脚本放置的地方,将决定这些脚本什么时候开始运行。在这些目录之间,系统服务一起合作,就像运行状况良好的机器一样。然而,有时候你希望能在不使用kill 或killall 命令的情况下,能干净的启动或杀死一个进程。这就是/etc/init.d能够派上用场的地方了 Read More

Git之替换代码库HTTP(s)地址路径成Git协议路径

当使用glide install安装go的依赖包时,会提示[code lang="shell"[INFO] --> Fetching github.com/xxx/yyUsername for 'https://github.com'[/code此时,可以使用git config --add参数进行地址替换,具体命令如下[code lang="shell"git config --global --add url."git@github.com:".insteadOf "https://github.com/"[/code之后,再使用glide install安装依赖包时,会使用如下形式的命令进行下载代码[code lang="shell"git clone git@github.com:xxx/yyy.gi[/code文章来源:胡小旭 => Git之替换代码库HT... Read More

Mac(Linux)下解压(Unzip)文件时出现乱码解决方案

由于zip格式中并没有指定编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,因此,导致这些zip文件在Linux下解压时出现乱码问题,因为Linux下的默认编码是UTF8。Python方案这个方案很简单,因为如果你是*nix系统,那么python环境很有可能已经装好了。如果没有安装的话,可以到下面地址下载对应的安装包https://wiki.python.org/moin/BeginnersGuide/Downloa然后,创建python脚本文件myunzip.py,并写入如下内容[code lang="python"#作者:Latm Ak#链接:https://www.zhihu.com/question/20523036/answer/3522592#来源:知乎#著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。#!/usr/bin/env pytho... Read More

跟我一起写Makefile

概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的集成开发环境(integrated development environment, IDE)都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计其数,并且按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为ma... Read More

Linux 里 git log 中文乱码

远程的 Ubuntu 安装了中文语言包,但是通过 git log 检查日志时,中文依然显示乱码。首先确认系统安装了中文语言包,并且启用了。关于语言包安装,请参考另一篇文章 Ubuntu 安装和启用中文设置Git全局配置git config --global i18n.commitEncoding ISO-8859 #设置提交的编码git config --global i18n.logOutputEncoding ISO-8859 #设置日志的编码设置环境变量export LESSCHARSET=utf-8 #设置 Shell 临时环境变量 Read More

[维护中]基于文本图形(ncurses)的文本搜索工具 ncgrep

源码下载http://github.com/ncgrep/ncgre背景作为一个VIM党,日常工作开发中,会经常利用grep进行关键词搜索,以快速定位到文件。如图但是,这一过程会有两个效率问题展示的结果无法进行直接交互,需要手动粘贴文件路径在打开展示的结果没有进行分组,直接将结果罗列出来可想而知,当搜索的内容结果集比较大时,可谓痛苦。那可以用Vim中的Ag插件进行搜索啊?是的,但他只解决了交互的问题。仍然没有解决结果集分组分类的痛点。思路在使用Eclipse等IDE进行文本全局搜索时,在加载效果(懒加载)可视化方面有很大优势。那么,期望基于linux系统,提供一个类似的搜索工具。优点(功能)如下结果集可以直接交互结果集可以进行分组展示结果集通过“懒加载”方式装载基于文本图形界面的类库是什么呢?网上大致了解了下VIM、htop类似的软件,其都是基于一个叫ncurses的类库实现的。项目... Read More