蒋士正的博客

前游戏热爱者


  • Home

  • About

  • Tags

  • Categories

  • Archives

Redis设计与实现-第5章-跳跃表

Posted on 2016-12-22 | Edited on 2019-03-25 | In Redis

跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。

跳跃表平均支持O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。

Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis就会使用跳跃表来作为有序集合键的底层实现。

  • 实现有序集合键
  • 在集群节点中用做内部数据结构
    Read more »

Effective Java-第2条:遇到多个构造器参数时要考虑用构建器

Posted on 2016-12-22 | Edited on 2019-03-25 | In Java

静态工厂和构造器有个共同的局限性:它们都不能很好地扩展到大量的可选参数。考虑用一个类表示包装食品外面显示的营养成分标签。这些标签有几个是必须的,还有超过20个可选项。

重叠构造器(telescoping constructor)模式

对于这样的类,应该用那种构造器或者静态方法来编写呢?程序员一向习惯采用重叠构造器(telescoping constructor)模式,在这种模式下,你提供第一个只有必要参数的构造器,第二个构造器有一个可选参数,第三个有两个可选参数,以此类推,最好一个构造器包含所有可选参数。

Read more »

Java 异常处理

Posted on 2016-12-22 | Edited on 2019-03-25 | In Java

最近在学习Java的时候发现对异常处理机制理解还不是太深刻,再网上摘抄整理一些内容。

Java异常处理

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。

比如说,你的代码少了一个分号,那么运行出来结果是提示错误java.lang.Error;如果你用System.out.println(11/0),那么是因为你用了0做除数,会抛出java.lang.ArithmeticException的异常。

Read more »

Hexo框架下给博客插入本地图片

Posted on 2016-12-20 | Edited on 2019-03-25 | In 杂

终于能给博客插图了,以前一直以为要把图片单独上传到七牛云这些线上服务器才行,hexo可以直接用本地的服务器了。

Read more »

Redis设计与实现-第4章-字典

Posted on 2016-12-20 | Edited on 2019-03-25 | In Redis

字典的实现

Redis字典所使用的哈希表由dict.h/dictht结构定义:

1
2
3
4
5
6
7
8
redis> HLEN website
(integer) 10086

redis> HGETALL website
1)"Redis"
2)"Redis.io"
3)"MariaDB"
# ...

Read more »

Redis设计与实现-第3章-链表

Posted on 2016-12-20 | Edited on 2019-03-25 | In Redis

链表提供了高效的节点重排能力,以及顺序访问的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。

1
2
3
4
5
6
7
8
9
redis> LIEN integers
(integer) 1024

redis> LRANGE integers 0 5
1)"1"
2)"2"
3)"3"
4)"4"
5)"5"

Read more »

Redis设计与实现-第2章-简单动态字符串

Posted on 2016-12-19 | Edited on 2019-03-25 | In Redis

Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string, SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。

1
2
redis> SET msg "hello world"
OK

Read more »

Effective Java-第1条:考虑用静态工厂方法代替构造器

Posted on 2016-12-17 | Edited on 2019-03-25 | In Java

静态工厂方法与构造器不同的优势在于

  1. 它们有名称
  2. 不必在每次调用它们的时候都创建一个新对象
  3. 它们可以返回原返回类型的任何子类型的对象
  4. 在创建参数化类型实例的时候,它们使得代码变得更加简洁
    Read more »

Solr中Nested Doduments拓展

Posted on 2016-12-16 | Edited on 2019-03-25 | In Java

一、介绍

Nested Documents是Solr引擎提供的一种用来描述父子关系的一种Document,描述的是一种一对多的关系。举个例子,一篇博客和很多评论,那么该博客就可以作为父doc的形式存在,而每条评论就可以作为子doc包含在父doc中。

Read more »

使用SublimeText3打造漂亮的Markdown编辑器

Posted on 2016-12-16 | Edited on 2019-03-25 | In 杂

因为之前做的是手游开发python + lua,所以编辑器一直用的是sublime,然后为了写markdown特地去安装了一个markdown编辑器,后来发现原来sublime也可以变成一个漂亮的Markdown编辑器。

Read more »

1234

蒋士正

音浪 太强 不晃 会被撞到地上
32 posts
10 categories
22 tags
© 2019 蒋士正
Powered by Hexo v3.8.0
|
Theme – NexT.Muse v7.0.1