1.介绍 Hash是以K->V形式存储,而Set则是K存储,空间节省了很多 Redis中Set是String类型的无序集合:集合成员是唯一的. 这就意味着集合中不能出现重复的数据.可根据应用场景需要选用该数据类型.(比如:好友/关注/粉丝/感兴趣的人/黑白名单) 2.源码解析 Redis使用Dict和IntSet保存Set数据 // 1. inset 数据结构,在set数据量小且都是整型数据时使用 typedef struct intset { // 编码范围,由具体存储值决定 uint32_t…
Alink漫谈(十九) :源码解析 之 分位点离散化Quantile 目录 Alink漫谈(十九) :源码解析 之 分位点离散化Quantile 0x00 摘要 0x01 背景概念 1.1 离散化 1.2 分位数 1.3 四分位数 0x02 示例代码 0x03 总体逻辑 0x04 训练 4.1 quantile 4.2 countElementsPerPartition 4.3 MultiQuantile 4.4 QIndex 0x05 输出模型 0x06 预测 6.1 加载模型 6.2 预测…
Alink漫谈(十八) :源码解析 之 多列字符串编码MultiStringIndexer 目录 Alink漫谈(十八) :源码解析 之 多列字符串编码MultiStringIndexer 0x00 摘要 0x01 概念 0x02 示例代码 0x03 总体逻辑 0x04 Add Index to Token 4.1 合并计算单词个数 4.1.1 打散输入数据 4.1.2 分组计算个数 4.2 合并计算单词个数 0x05 输出模型 0x06 预测 6.1 加载模型 6.2 预测 0xFF 参考 0…
Alink漫谈(二十) :卡方检验源码解析 目录 Alink漫谈(二十) :卡方检验源码解析 0x00 摘要 0x01 背景概念 1.1 假设检验 1.2 H0和H1是什么? 1.3 P值 (P-value) 1.4 交叉表 1.5 卡方 1.5.1 公式 1.5.2 基本思想 1.5.3 实现过程 1.6 自由度 0x02 示例代码 0x03 总体逻辑 0x04 训练 4.1 ChiSquareTest 4.2 Crosstab 4.3 构建卡方检验 0xFF 参考 0x00 摘要 Alink…
老生常谈系列之Aop--Spring Aop源码解析(二) 前言 上一篇文章老生常谈系列之Aop--Spring Aop源码解析(一)已经介绍完Spring Aop获取advice切面增强方法的逻辑,那这篇会介绍Spring Aop是怎么根据上面获取的advice生产动态代理的,并且会介绍advice是怎么执行的,例如怎么确保@Before的逻辑在@After前面执行. 源码分析 以下代码分析基于Spring版本5.2.x,另外部分地方我摘抄保留了英文注释,希望看官可以用心体会. 我们回到Abs…
老生常谈系列之Aop--Spring Aop源码解析(一) 前言 上一篇文章老生常谈系列之Aop--Spring Aop原理浅析大概阐述了动态代理的相关知识,并且最后的图给了一个Spring Aop实现的逻辑猜测,这是一种很普通的情形,如下图: 那下面,我们就通过源码分析来看Spring到底是怎么操作的,Spring是如何识别切面并且生成动态代理的. 在讲解Spring Aop实现之前,插两句Spring IOC的实现,因为Aop是依赖了IOC的实现的.可以参考Spring官网的原文如下: On…
2.源码解析 1.相关命令如下: {"hset",hsetCommand,,"wmF",,NULL,,,,,}, {"hsetnx",hsetnxCommand,,"wmF",,NULL,,,,,}, {"hget",hgetCommand,,"rF",,NULL,,,,,}, {"hmset",hmsetCommand,-,"wm",,NULL,…
Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表.当然,我们也可以将LinkedList当作栈来使用!在“Java 集合系列06之 Vector详细介绍(源码解析)和使用示例”中,已经详细介绍过Vector的数据结构,这里就不再对Stack的数据结构进行说明了. Stack的继承关系 java…
在前面的博文<小学徒成长系列—String关键源码解析>和<小学徒进阶系列—JVM对String的处理>中,我们讲到了关于String的常用方法以及JVM对字符串常量String的处理. 但是在Java中,关于字符串操作的类还有两个,它们分别是StringBuilder和StringBuffer.我们先来就讲解一下String类和StringBuilder.StringBuffer的联系吧. String.StringBuilder.StringBuffer的异同点 结合之前写的博…
本文系作者原创,转载请注明出处:http://www.cnblogs.com/further-further-further/p/7681826.html 在源码解析前,需要先理清线程池控制的运行状态,以及运行状态之间的任务调度 线程池控制状态(ctl ,原子操作 ,来自包java.util.concurrent.atomic ,保证线程并发安全),分为两大类:workerCount(当前运行的线程数)    runState(当前线程的运行状态) 1.runState运行状态: a>  RUN…