Redis设计与实现(一)
第二章 动态字符串
第三章 链表
第四章 字典
第五章 跳跃表
第六章 整数集合
第七章 压缩列表
第八章 对象
string
list
hash
set
zset
总结
第二章 动态字符串
主要介绍了redis的SDS(Simple Dynamic String)的数据结构,比C上的String是有一个升级的,重点有几点:
SDS的数据结构里除了一个char数组,还有两个int字段,分别保存数组总长度 以及 剩余可用长度。
SDS的扩容机制:数组长度小于 1M 时,每次扩容会额外扩容一倍,扩容后的剩余可用长度是总长度的一半;数组长度大于 1M 时,每次扩容额...
BIO,NIO,AIO简单分析
名词解释
阻塞与非阻塞
多路复用
代码示例
名词解释
BIO: Blocking IO 即阻塞IO,准确的说是同步阻塞IO
NIO: NonBlocking IO 即非阻塞IO,准确的说是同步非阻塞IO
AIO: Asynchronous IO 即异步IO,准确的说是异步非阻塞IO
阻塞: 简单来说,就是当你发起一个任务(命令/请求/操作)的时候,无论任务是否由你完成,你都得等着,直到任务完成。
非阻塞: 跟阻塞相反,就是当你发起一个任务时,交给其他人去做,你可以去做其他的事儿,但是时不时的还得回来看看做完了没(这一步就叫做轮询)。
异步: 异步这个词有很多意思,在当前场景下,意思就是当你发起一个任务时,交给其他人去做,你就可以去做别的事儿了,其他人做好之后,会直接送...
Java集合框架--概述
概述
Collection
Map
结语
概述
Java中的集合框架有两种,一种是Map,一种是Collection,Collection是一种线性的数据结构,Map则是一种key-value形式的数据结构。Java中的集合框架十分常用,比如HashMap,ArrayList,LinkedList等,下面介绍一下集合框架的关系,后续再深入每个类的内部,分析其实现原理与应用场景。
Collection
Collection的派生类主要有三种,List,Set,Queue。
List在数据结构上可以称为链表,其特点是它记录了每个元素所在的位置,可以通过get(int index)方法获取对应位置上的元素,或者通过set(int index, E value)向指定位置...
记一次mac上的文件乱码处理
起因是某次需求需要洗一批数据,判断国内、国际、港澳台地区订单,打上不同的标识。订单数据中存有国家以及省市字段,需要导出订单数据,在线下打上对应标识。于是乎,我写了个shell的脚本,希望能搞定这个事儿(后来的事实狠狠的打了我的脸,不过那是另一个故事了)。在意料之中的,我遇到了中文编码的问题。
别的不说,先贴代码
#!/bin/bash
ORDER_FILE=$1
RESULT="$1-result.csv"
echo "orderNum,regionType" >> $RESULT
echo "Wash $ORDER_FILE start..."
ORDER_ARRAY=($(awk -F',' '{print $1}' $ORDER_FILE))
COUNTRY_AR...
共计 15 篇文章,2 页。