2019年11月2日

redis系列之------对象

摘要:前言 Redis 并没有直接使用数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统, 这个系统包含字符串对象、列表对象、哈希对象、集合对象和有序集合对象这五种类型的对象, 每种对象都用到了至少一种我们前面所介绍的数据结构。 通过这五种不同类型的对象, Redis 可以在执行命令之前 阅读全文

posted @ 2019-11-02 16:04 wenbochang 阅读 (106) 评论 (0) 编辑

2019年10月19日

redis系列之------数据库

摘要:前言 当我们在Redis数据库中set一个KV的时候,这个KV保存在哪里?如果我们get的时候,又从哪里get出来。时间复杂度,空间复杂的等等,怎么优化等等一系列问题。 服务器中的数据库 Redis服务器将所有数据库信息都保存在redis.h##redisService结构体中。代码如下: 列了几个 阅读全文

posted @ 2019-10-19 16:09 wenbochang 阅读 (38) 评论 (0) 编辑

2019年10月15日

redis系列之------字典

摘要:前言 字典, 又称符号表(symbol table)、关联数组(associative array)或者映射(map), 是一种用于保存键值对(key-value pair)的抽象数据结构。 在字典中, 一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就被 阅读全文

posted @ 2019-10-15 15:34 wenbochang 阅读 (237) 评论 (0) 编辑

2019年10月14日

redis系列之------链表

摘要:前言 链表提供了高效的节点重排能力, 以及顺序性的节点访问方式, 并且可以通过增删节点来灵活地调整链表的长度。 作为一种常用数据结构, 链表内置在很多高级的编程语言里面, 因为 Redis 使用的 C 语言并没有内置这种数据结构, 所以 Redis 构建了自己的链表实现。 大家可以把Redis的链表 阅读全文

posted @ 2019-10-14 14:37 wenbochang 阅读 (27) 评论 (0) 编辑

2019年10月13日

redis系列之------简单的动态字符串(SDS)

摘要:前言 Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。 个人感觉SDS类似于Java的Arr 阅读全文

posted @ 2019-10-13 15:45 wenbochang 阅读 (107) 评论 (0) 编辑

2019年8月26日

解读BloomFilter算法(转载)

摘要:1.介绍 BloomFilter(布隆过滤器)是一种可以高效地判断元素是否在某个集合中的算法。 在很多日常场景中,都大量存在着布隆过滤器的应用。例如:检查单词是否拼写正确、网络爬虫的URL去重、黑名单检验,微博中昵称不能重复的检测。在工业界中,Google著名的分布式数据库BigTable也用 了布 阅读全文

posted @ 2019-08-26 20:25 wenbochang 阅读 (67) 评论 (0) 编辑

2019年8月22日

Java函数式编程原理以及应用

摘要:一. 函数式编程 Java8所有的新特性基本基于函数式编程的思想,函数式编程的带来,给Java注入了新鲜的活力。 下面来近距离观察一下函数式编程的几个特点: 函数可以作为变量、参数、返回值和数据类型。 基于表达式来替代方法的调用 函数无状态,可以并发和独立使用 函数无副作用,不会修改外部的变量 函数 阅读全文

posted @ 2019-08-22 20:21 wenbochang 阅读 (501) 评论 (0) 编辑

2019年8月13日

阿里面试实战题3----String,StringBuilder,StringBuffer区别

摘要:String 可以特别明显的看出。String是final类型,不可被继承。同时底层的数据结构--数组,也是final不可变的。 StringBuilder 同样可以看出,StringBuilder不同于String,char数组是非final类型,可被修改。 StringBuffer 他是安全版的 阅读全文

posted @ 2019-08-13 17:54 wenbochang 阅读 (72) 评论 (0) 编辑

2019年8月7日

阿里面试实战题2----ReentrantLock里面lock和tryLock的区别

摘要:ReentrantLock ReentrantLock(轻量级锁)也可以叫对象锁,可重入锁,互斥锁。synchronized重量级锁,JDK前期的版本lock比synchronized更快,在JDK1.5之后synchronized引入了偏向锁,轻量级锁和重量级锁。以致两种锁性能旗鼓相当,看个人喜欢 阅读全文

posted @ 2019-08-07 20:21 wenbochang 阅读 (278) 评论 (0) 编辑

2019年8月5日

阿里面试实战题1----TreeSet,HashSet 区别

摘要:TreeSet,HashSet 区别 TreeSet 可以从代码中明显看出。TreeSet的底层其实是TreeMap。 而TreeMap是一个有序的key-value集合,它是通过红黑树实现的。 TreeMap基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据 阅读全文

posted @ 2019-08-05 21:39 wenbochang 阅读 (75) 评论 (0) 编辑

导航