Markdown中支持LaTex数学公式
一、引言Markdown在目前无疑是一个比较好的写作方式,但是它时候和大部分的写作软件一样,在一些数据公式的编写上,只能引入图片呢?除了引用图片之外是不是还有更好的数学公式编辑手段呢?这里主要介绍一下LaTex...
Charles工具的介绍与使用
Charles 是 MacOS 上十分好用的一款抓包工具,它不仅可以抓取明文数据包,也可以在手机端安装相关 SSL 证书后抓取加密的数据包,对于分析手机端应用的交互行为十分有帮助,本文中使用的版本为 4.2.8,这里记录一下如何使用 Charles 在 MacOS 下对于安卓手机进行抓包。 一、环境配置与要求 环境与软件:自行安装,不做介绍 环境: Charles 本身依赖于 Java 环境,因此需要确保 MacOS 本身已经安装配置完成 Java 的环境; 软件: MacOS 端安装成功 Charles ,并且配置完成所需要抓取的网址信息; 设备关联:手机和 Mac 处于同一个局域网中,并且将指定的代理服务器配置为 Charles 实际所监听的 IP 和端口; 证书安装:手机安装完成 Charles SSL CA 证书,证书的获取方式下文会详细介绍(仅用于抓取 HTTPs 的数据包); 抓包分析:开始抓包分析即可; 二、MacOS 端软件配置 安装 Charles HTTPS 证书 :依次点击 Help ,SSL Proxying ,Install Charles...
为什么RedisCluster采用16384个槽位?
一、引言RedisCluster目前使用的计算slot槽位的算法为CRC16,该算法本身会产生的hash值的大小为16bit,因此该算法可以产生2^16=65536个不同的值,取值范围为0~65535之间,从下面的代码中我们看到,目前限制的slot槽位的个数为16384(相关的代码为crc16(key+s+1,e-s-1) & 0x3FFF); /* We have 16384 hash slots. The hash slot of a given key is obtained * as the least significant 14 bits of the crc16 of the key. * * However if the key contains the {...} pattern, only the part between * { and } is hashed. This may be useful in the future to force certain * keys to be in the same...
Redis的多线程特性
...
使用FPM优雅的进行rpm打包
一、介绍对于有过构建rpm安装包相关操作的应该知道可以使用spec文件以及rpmbuild指令进行打包操作,不过spec文件的编写也是一个十分令人头懂的事情,我之前曾经有过一篇使用spec文件打包的文章,参考RPM打包记录,这里介绍一个更高效,更人性化的打包工具:FPM。 FPM是一个快速高效的打包工具,该工具本身为Ruby的一个模块,因此使用该工具之前需要安装Ruby; 二、安装与使用2.1、安装# 安装rubyyum -y install ruby rubygems ruby-devel# 替换国内的ruby镜像gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/# 验证镜像是否替换成功gem sources -l# 安装fpmgem install fpm 2.2、参数介绍-f :强制覆盖[覆盖同名rpm包]-n :指定的rpm包名-p :指定的rpm包文件放置位置,最后将rpm存放在该路径下;-v :指定的rpm包版本-d :指定依赖的软件 ( [-d...
BloomFilter 和 CuckooFilter 对比解析
BloomFilter 和 CuckooFilter 都是一种用于数据存在性判断的数据结构。布隆过滤器早在 1970 年就被提出,它由一个二进制向量数组和一系列随机映射函数组成。它可以用于检索一个元素是否一定不在集合中或者可能存在集合中。布谷鸟过滤器的提出相对较晚,它创新性的提出了可以删除的实现方式,解决了布隆过滤器无法删除数据的痛点。这两者各有优劣,需要结合具体的使用姿势来进行选择。 一、BloomFilterBloom Filter(布隆过滤器)是1970年由布隆提出的,它由一个二进制向量数组和一系列随机映射函数组成。它可以用于检索一个元素是否一定不在集合中或者可能存在集合中。 《Space/Time Trade-offs in Hash Coding with Allowable...
记一次nf_conntrack模块导致的丢包问题
一、背景我们灰度线上业务的时候,有一次遇到了业务反馈资源没有读写,当时正好将流量切到了线上的一台机器上,在将业务的资源迁移回滚之后,经过一番查找,发现/var/log/message中打印了很多关于kernel: nf_conntrack: table full, dropping packet的错误信息,网上查找了一下,这个错误主要是由于启用了nf_conntrack模块,之前很多人都遇到了这个问题,解决方案也很多,这里以我的角度详细记录一下,/var/log/message中错误信息如下: Jul 30 11:50:01 dbl14192 systemd: Starting Session 486429 of user root.Jul 30 11:50:02 dbl14192 kernel: nf_conntrack: table full, dropping packetJul 30 11:50:02 dbl14192 kernel: nf_conntrack: table full, dropping packetJul 30 11:50:02 dbl14192...
Perf与火焰图
一、PerfPerf 是基于Linux 2.6+系统的一款性能分析工具。它可以用来分析应用程序和内核的性能问题,从而全面理解应用程序中的性能瓶颈。 [root@bugwz ~]# perf --help usage: perf [--version] [--help] [OPTIONS] COMMAND [ARGS] The most commonly used perf commands are: annotate Read perf.data (created by perf record) and display annotated code archive Create archive with object files with build-ids found in perf.data file bench General framework for benchmark suites buildid-cache Manage build-id cache. buildid-list ...
漏桶与令牌桶速率限制算法
一、漏桶算法漏桶算法(Leaky Bucket)是网络世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)时经常使用的一种算法,它的主要目的是控制数据注入到网络的速率,平滑网络上的突发流量。漏桶算法提供了一种机制,通过它,突发流量可以被整形以便为网络提供一个稳定的流量。示意图如下所示: 1.1、算法过程 数据包入队列:数据包按照一定的顺序存储入用于临时存储的缓存队列(数据桶)中; 数据包等待或溢出:数据包在缓存队列(数据桶)中等待一段时间,或者如果此时缓存队列(数据桶)已经达到存储的上限,数据包溢出(被丢弃); 数据包出队列:将缓存队列(数据桶)中的数据包按照固定的速率依次出队列并进行处理; 1.2、特点 优点: 能够强行限制数据的传输速率; 保证严格的延迟界限; 缺点: 对突发性的流量缺乏处理效率; 1.3、相关项目 Nginx中关于漏桶的设计与实现:ngx_http_limit_req_module...
Redis的Memory命令讲解
一、简述Memory指令是Redis4.0版本更新的特性,可用于详细的分析内存的使用情况,内存使用诊断,内存碎片回收等工作; 可以通过memory help指令打印出memory指令的信息,详细信息如下所示: 1) MEMORY <subcommand> arg arg ... arg. Subcommands are:2) DOCTOR - Return memory problems reports.3) MALLOC-STATS -- Return internal statistics report from the memory allocator.4) PURGE -- Attempt to purge dirty pages for reclamation by the allocator.5) STATS -- Return information about the memory usage of the server.6) USAGE <key> [SAMPLES <count>] -- Return memory in...