获得徽章 0
#每天一个知识点# redis使用RDB文件持久化时,RDB文件最开头的部分是“REDIS”部分,长度为5字节,保存着“REDIS”5个字符。通过这5个字符,程序在载入文件时可以快速检查是否为RDB文件。[微笑]
评论
#每天一个知识点# redis数据库主要由dict和expires两个字典构成,其中dict字典负责保存键值对,expires字典负责保存键的过期时间。因为数据库由字典构成,所以对数据库的操作都建立在字典操作之上。[微笑]
评论
#每天一个知识点# redis会在初始化服务器时,创建一万个字符串对象,包含0-9999的所有整数值。当服务器需要用到值为0到9999的字符串对象时,服务器就会使用这些共享对象,而不是新创建对象。
创建共享字符串对象的数量可以通过修改redis.h/REDIS_SHARED_INTEGERS常量来修改。[微笑]
评论
#每天一个知识点# redis所使用的的主要数据结构有:简单动态字符串、双端链表、字典、压缩列表、整数集合等。
redis基于这些数据结构创建了一个对象系统,这个系统包含:字符串对象、列表对象、哈希对象、集合对象和有序集合对象。每种对象都用到了至少一种数据结构。
redis可以针对不同使用场景,为对象设置多种不同数据结构实现,优化使用效率。[微笑]
展开
评论
#每天一个知识点# 在redis中,压缩列表(ziplist)是一种为节约内存而开发的顺序型数据结构,被用作列表键和哈希键的底层实现之一。
压缩列表可以包含多个节点,每个节点可以保存一个字节数组或整数值。添加或删除节点,可能会引发连锁更新操作,但出现几率不高。[微笑]
评论
#每天一个知识点# redis使用的过期键删除策略是惰性删除加上定期删除,这两个策略相互配合,可以很好地在合理利用CPU时间和内存空间之间取得平衡。[微笑]
评论
#每天一个知识点# 跳跃表是redis有序集合的底层实现之一。Redis的跳跃表实现由zskiplist和zskiplistNode两个结构组成,其中zskiplist用于保存跳跃表信息(比如表头节点、表尾节点、长度),而zskiplistNode则用于表示跳跃表节点。
评论
#每天一个知识点# Redis使用MurmurHash2算法来计算键的哈希值。MurmurHash算法最初由Austin Appleby于2008年发明,这种算法的优点在于,即使输入的键是有规律的,算法仍能给出一个很好的随机分布性,并且算法的计算速度也非常快。[微笑]
评论
#每天一个知识点# C语言使用长度为N+1的字符数组来表示长度为N的字符串,并且字符数组的最后一个元素总是空字符'\0'。
在redis的实现中,定义了SDS数据结构来实现动态字符串的存储,而不是C字符串。
SDS结构如下:
struct sdshdr {
//记录buf数组中已使用字节的数量
//等于SDS所保存字符串的长度
int len;
//记录buf数组中未使用字节的数量
int free;
//字节数组,用于保存字符串
char buf[];
};
SDS通过len实现了O(1)时间的数据长度查询。
通过free减少了修改字符串带来的内存重分配次数。
SDS是二进制安全的,可以保存文本或二进制数据,C字符串只能保存文本。
[微笑]
展开
评论
#每天一个知识点# 在高可用领域,CAP定理经常被提起。最早由加州大学伯克利分校的计算机科学家Eric Brewer 在2000年的ACM PODC大会上演讲时阐述。
在一个分布式系统中,当涉及到读写操作时,只能保证一致性、可用性、分区容错性三者中的两个,另一个必须被牺牲。
在CAP理论中,P是必须的。因此只能从AP和CP中进行抉择。zookeeper保证的是CP,注册中心eureka实现的是AP。[微笑]
展开
评论
#每天一个知识点# 在V2EX上看到的一个很有意思的前端开源项目——一键给网页添加WebGL动态背景。作者的网站:uvcanvas.com,有兴趣的jym可以给提提PR。
评论
#每天一个知识点# 数据仓库的重要特点之一是反映历史变化,所以如何处理维度的化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的,它会随着时间的流逝发生缓慢的变化与数据增长较为快速的事实表相比,维度变化相对缓慢。—— 摘抄自大数据之路:阿里巴巴大数据实践[微笑]
评论
#每天一个知识点# 找了好久才找到阿里官网放出来的大数据学习书籍——大数据之路:阿里巴巴大数据实践。有兴趣学习大数据的可以看下。[微笑]
评论
#每天一个知识点# 百度一个专门面向开发者的搜索引擎,kaifa.baidu.com,搜索的结果基本只有技术相关的内容,比一般的百度搜索要稍微好一点。[微笑]
评论
赞了这篇沸点
永远不要提前焦虑,也不要预支烦恼
10
#每天一个知识点# github.com 国人开源的可批量的离线OCR软件,目前只有windows版本,试用了下,效果还不错,star数已经很高了。[微笑]
评论
#每天一个知识点# spark-submit 提交打包成jar包的任务时,如果你不想把hive-site.xml一起打包放入jar包中。可以使用--files "xml配置文件地址" 来代替,地址支持file/hdfs/http/ftp/local多种方式。[微笑]
评论
下一页
个人成就
文章被点赞 1
文章被阅读 4,271
掘力值 144
收藏集
0
关注标签
2
加入于