kv数据库_redis
gonaYet
这个作者很懒,什么都没留下…
展开
-
[redis] crc16
一、背景redis集群使用哈希槽实现,其对key进行哈希计算采用crc16(key) & 0x3fff,得到在16384个槽的其中一个,每个槽对应一个redis节点,如果为当前节点则执行请求,否则返回重定向节点操作 二、crc16如下图,redis的实现:/* CRC16 implementation according to CCITT standards. *...转载 2018-09-05 19:30:45 · 1766 阅读 · 0 评论 -
[redis] sentinel
要点:1.sentinel 为redis哨兵,其与redis公用一个代码2.sentinel有主观认为master挂掉sdown,和当有多少个sentinel认为master挂掉后的客观挂掉odown3.odown发生后,进入failover,会进行master选举,这里当大多数sentinel认为某个slave可以充当master的时候,会进行切换4.slave的发送通过mast...原创 2021-09-09 11:29:35 · 216 阅读 · 0 评论 -
[redis] set数据结构
一、描述redis的一个类型set(集合)二、redis其内部实现1:hashmap(hash table)散列表实现,key=value, value=null即可,散列表相关链接2:intset-可以理解为正数有序数组三、intset的数据结构定义contents:字节数组,其可以有16bit,32bit,64bit编码成整数的方式enco原创 2018-04-12 23:29:42 · 914 阅读 · 0 评论 -
[redis] list数据结构
一、描述redis的一个数据结构为list(双向列表)二、数据结构定义struct quicklistNode *prev;struct quicklistNode *next;从prev和next都是当前该数据结构quicklistNode的定义,再查看其他数据如sz,count等都不能表示存放的数据,因此实际quicklistNode的数据存储功能是交由zi原创 2018-04-12 21:26:02 · 332 阅读 · 0 评论 -
[redis] hashmap数据结构
一、描述原创 2018-04-12 21:05:22 · 4181 阅读 · 0 评论 -
[redis] ziplist-压缩双向链表
redis ziplist-压缩双向链表原创 2018-04-12 20:32:19 · 2124 阅读 · 0 评论 -
[redis] 内存淘汰策略
一、描述redis默认是没有设置maxmemory字段的,maxmemory为redis进程的最大内存,单位字节二、maxmemory-policy当设置了maxmemory字段的时候,即限制了进程的内存大小,那么当redis的存储数据量大于该设置值后,便需要想办法将redis中的数据删除,以空出空间来保存新的存储需求三、参数maxmeory-policy有原创 2018-04-22 14:26:32 · 714 阅读 · 0 评论 -
[redis] linux下网络处理模块
一、描述1.linux下redis默认才用epoll来完成io的多路复用,将当前需要监听的io事件交由操作系统来完成。当有相应关注的io事件到来的时候,操作系统则会通知用户程序相关的信息,这样即使采用单线程也能监听多个io事件。2.采用单线程来处理网络请求,除了1的epoll外,还有两个原因:2.1 redis的数据结构是基于内存来实现的,因此其效率极高,即使单线程也能得到很高原创 2018-04-09 21:40:37 · 610 阅读 · 0 评论 -
[redis] 概述
一、概述1.redis作为nosql数据库的代表,在工作中主要用户分布式内存cache来使用。可以简单理解为常用的数据结构在独立服务器实现了。2.redis是key-value数据库,其key-value由hashmap数据结构来存储,key为字符串类型,而其value则可以为多种数据结构类型。如:string(字符串类型),hashmap(散列表类型),set(集合类型),list(原创 2018-04-09 21:03:03 · 199 阅读 · 0 评论 -
[redis] rdb-dump.rdb
一、描述rdb(redis databses)redis的其中一个持久化数据方式(默认),是rdb模式,简单说就是会再一定的触发条件下,会启动子进程生成dump.rdb(快照文件)二、源码解析2.1 src/rdb.c:rdbSaveBackground代码逻辑:1.fork(),创建出子进程2.子进程调用rdbSave函数,完成实际的dump操作原创 2018-04-14 15:02:36 · 2066 阅读 · 0 评论 -
[redis] zset数据结构
一、描述redis其中一个数据结构为zset(sorted set-有序集合),其主要作用用于排行榜实现,你可以获取排名第几到第几的数据二、数据结构sorted set-有序集合在redis中有两种实现1.ziplist,压缩双向链表,相关链接2.skiplist,跳表实现三、skiplist数据结构score:分值,用于排序backward原创 2018-04-14 14:28:20 · 11292 阅读 · 0 评论