redis
文章平均质量分 84
地鼠工程师
这个作者很懒,什么都没留下…
展开
-
redis6.0源码整数集合
整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合键的底层实现。typedef struct intset { //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组 int8_t contents[];} intset;contents数组是整数集合的底层实现:整数集合的每个元素都是contents数组的一个数据项(i原创 2020-07-30 21:28:26 · 122 阅读 · 0 评论 -
vscode调试redis
系统:ubunturedis:redis-6.0.31.在vs中安装c/c++编译插件2.用vscode打开redis-6.0.33.在菜单中找到run->Add Configuration…4.会在目录中生成一个./vscode目录,里面包含launch.json,修改launch.json中的program:${workspaceFolder}/src/redis-server5.在./vscode目录下新建tasks.json{"version": "2.0.0","ta原创 2020-05-18 13:48:42 · 6368 阅读 · 2 评论 -
redis6.0源码跳跃表
跳跃表主要用于有序集合键,另一个是在集群节点中用作内部数据结构。结构体定义跳跃表的结构定义在server.h/zskiplisttypedef struct zskiplistNode { sds ele;//成员对象 double score;//分数 struct zskiplistNode *backward; //层 struct zskiplistLevel { //前进指针 struct zskiplistNode *f.原创 2020-05-18 10:48:27 · 292 阅读 · 0 评论 -
redis6.0源码字典的实现
哈希表节点typedef struct dictht { //哈希表数组 dictEntry **table; //哈希表大小 unsigned long size; unsigned long sizemask; unsigned long used;} dictht;哈希表typedef struct dictEntry { //键 void *key; //值 union { void *val;原创 2020-05-13 10:03:32 · 288 阅读 · 0 评论 -
redis6.0源码双端链表
链表节点adlist.h/listNodetypedef struct listNode { struct listNode *prev;//前置节点 struct listNode *next;//后置节点 void *value;//节点值} listNode;typedef struct list { listNode *head;//表头节点 ...原创 2020-05-12 07:56:28 · 165 阅读 · 0 评论 -
redis6.0源码动态字符串SDS
redis中没有使用传统c语言的字符串,而是自己构建了sds与c字符串的异同:C字符串SDS获取字符串长度的复杂度为O(N)获取字符串长度的复杂度为O(1)API是不安全的,可能会造成缓冲区溢出(手动分配)API是安全的,不会造成缓冲区溢出(预分配)修改字符串长度N次必然需要执行N次内存重分配修改字符串长度N次最多需要N次内存重分配(做了预分配和惰性空间释...原创 2020-05-04 22:38:10 · 368 阅读 · 0 评论 -
redis分布式锁官方解读
概述在许多环境中,不同的进程必须以互斥的方式使用共享资源进行操作,就用到分布式锁。分布式锁具有的特性:安全性:在任意给定时刻,只有一个客户端可以获得锁,具有排它性。容错性A:避免死锁。客户端最终一定可以获得锁,即使锁住某个资源的客户端在释放锁之前崩溃或者发生网络分区。容错性B:只要大多数的节点都处于运行状态,客户端就可以获取和释放锁。Redlock算法介绍在算法的分布式版本中,假...原创 2020-04-24 21:54:23 · 213 阅读 · 0 评论 -
redis主从复制之配置
概述redis的复制的流程是怎样的?复制有哪几种方式比方说现在有两台机192.168.85.110主节点,192.168.85.111是从节点,前置-安全性校验在开启主从复制之前,redis配置默认有保护模式配置,需要设置一下,否则会导致开启主从复制失败。方式一修改保护模式:redis默认只允许本地客户端进行连接,所以在设置主从复制的时候,需要关闭主节点的保护,在配置中修改prot...原创 2020-04-02 08:44:45 · 124 阅读 · 0 评论 -
redis持久化RDB和AOF
11原创 2020-03-25 11:58:59 · 297 阅读 · 0 评论