Irving.gx

Thinking will not overcome fear but action will.

Redis对象

机会只留给那些准备充分的人

  我们在前面的文章当中分析了redis的几种数据结构,在这篇文章当中我们来分析一下redis对象。 Redis对象结构 我们首先来看一下redis对象的源码: 可以看到redis对象当中有一个成员变量是type,用于标识对象的类型,一共有5种类型,分别是string(字符串),list(列表),hash(哈希对象),set(集合), zset(有序集合)。第二个成员变量encodi...

Redis数据结构之整数集合

机会只留给那些准备充分的人

数据结构 整数集合intset也是redis的一种基本数据结构,其结构定义在src/intset.h文件当中,我们来看下其代码实现: 可以看到整数集合的定义很简单,主要有三个成员变量,分别存储的是编码方式,整数集合包含的元素数量以及包含的元素是什么。整数集合的特点是集合中 不包含重复元素,并且其中的元素从小到大有序排列。     我们再来看一下整数集合的几种编码方式,我们在src...

Redis数据结构之压缩链表

机会只留给那些准备充分的人

数据结构 现在我们来看一下redis压缩列表(ziplist)这种数据结构,这种数据结构的目的是为了节省内存。压缩列表是哈希键以及列表键的底层实现之一, 如果存储的数据是比较小的整数或者是比较短的字符串的话,redis就会使用这种数据结构。ziplist虽然在源码当中像其他数据结构一样有自己的头文件 以及声明函数的c文件,但是并没有像其他数据结构一样有自己的结构体,我们先看一下创建一个新的...

Redis数据结构之跳跃链表

机会只留给那些准备充分的人

这篇文章我们分析一下redis当中跳跃表的数据结构。 跳跃链表数据结构 跳跃链表是一种能够快速查找元素的数据结构,跳跃链表每个数据节点有随机的多层,每个节点不像传统的单层链表那样指向相邻的下一个,而是 指向相隔多个节点的后面的某一个节点,其数据结构如下图所示: 这样对于一个有序的链表来说,如果要查找其中的某一个元素,不用一个个节点向后遍历,在查找的时候可以跳过中间的一些节点,快速定...

Redis数据结构之双向链表

机会只留给那些准备充分的人

在上一篇当中我们简单分析了一下简单动态字符串,下面我们来看一下redis另外一种数据结构,双向链表(ADList)。在源码当中的src/adlist.c以及src/adlist.h中可以看到这部分的代码,先来看一下adlist的数据结构 可以看到list结构体中有两个listNode链表节点,分别指向的是链表的头结点和尾节点,此外还有三个函数,dup,free以及match分别是对链表...

Redis数据结构之简单动态字符串SDS

机会只留给那些准备充分的人

初见 之前看过黄健宏老师在2014年写的一本《redis设计与实现(第二版)》,作者开篇就介绍了redis几个基本的数据结构,简单动态字符串(SDS),链表,字典,整数集合等等。当时作者在书中对于SDS的结构介绍是这样的: 从官网上下载了最新版本的源码来看,发现SDS最新的数据结构已经不是书中的样子了,现在的SDS的结构是这样的 了解了一下原因,发现上述的书籍在出版的时候用的是...

如何实现基于UDP的socket通信

用java基于UDP实现socket通信

前言 Java如何基于UDP实现server和client之间的通信,有以下方法可以参考 发送端 发送方MyClient.java public class MyClient implements Runnable { //本机的IP private static final String ServerIP = "192.168.124.12" ; ...

安卓如何在activity之间传递数据

good good study,day day up

前言 在开发Android的时候经常会遇到需要在不同Activity之间传递数据的场景,那么有什么方法可以实现呢?有以下方法可以参考。 1.通过Intent 发送数据的MainActivity Intent intent=new Intent(this,receActivity.class); Intent.putExtra("int_data",123); st...

字节跳动广告后台开发面试经历

机会只留给那些准备充分的人

前言 疫情期间在家办公的时候突然接到一个电话,说把从池子中捞起来了,问我要不要面试一下字节的广告后台。在接到电话之后有点犹豫,距离上一次面试已经过了一个月之久,这期间已经停止复习了,该忘的也都忘得差不多了,不知道到时候面试的时候能拿出几分功力。不过最终还是想试试吧,然后就答应了。 面试(基础+算法) 这次是在家视频面试,面试官看起来年轻也挺友善的,自我介绍之后就开始了正式的技术面。之前去...

字节跳动抖音后台开发面试经历

面前不复习,面后两行泪

前言 这篇博客是自己在2019年12月29日去上海字节跳动总部面试抖音后台开发的经历,是从下午3点开始面试的,一共面了差不多快4个小时,然而结局defeat。。。在面完之后的几天之内心情极度低落,今天在寒风中绕着世纪公园跑了6公里,心情稍微好受一点,于是在2020年新年的第一天写下这篇面经。 一面(基础+算法) 第一面的面试官看起来很年轻,而且通过问题表达与追问的过程感觉是一个很聪明的人...