
Redis
Aaron_涛
囧囧有神
展开
-
Redis-数据结构与对象-简单动态字符串
1. Redis中的String在Redis中没有使用c语言的字符串,而是使用了一种叫做简单动态字符串的数据结构,简称SDS,而c中的字符串在Redis只有字面量,且无需对字符串内容修改的时候才使用,其他时候都是使用SDS例如 set msg “redis” 其中msg和”redis“ 底层均为SDS例如 redisLog("asdasdasd") 这个时候就是使用c语言字符...原创 2019-01-03 19:41:31 · 408 阅读 · 0 评论 -
Redis-数据结构与对象-链表
1. 作用Redis中链表被广泛运用在很多地方,例如列表键,发布订阅,慢查询,监视器,Redis服务器本身还是要链表保存多个客户端状态信息,以及运用链表构建客户端输出缓冲区2. 数据结构typedef struct listNode{ //前置节点 struct listNode *prev; //后置节点 struct listNode ...原创 2019-01-04 16:30:08 · 396 阅读 · 0 评论 -
Redis-数据结构与对象-字典
1. 作用字典类似Java中的Map在Redis中用在做数据库底层和哈希键的使用例如 SET msg “redis” msg就是键,redis就是值,底层就是保存在字典中当一个哈希键包含的键值对比较多,又或者键值对中的元素都是比较长的字符串,Redis会使用字典作为哈希键的实现那么,比较少键值对就不会使用字典咯?2. 数据结构typedef struct d...原创 2019-01-04 16:31:49 · 510 阅读 · 0 评论 -
Redis-数据结构与对象-整数集合
1. 作用整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多,Redis会使用整数集合作为集合的底层实现 2. 数据结构typedef struct intset{ //编码方式 uint32_t encoding; //集合包含的元素数量 uint32_t length; //保存元素的数组...原创 2019-01-17 17:03:17 · 386 阅读 · 0 评论 -
Redis-数据结构与对象-压缩列表
1. 作用压缩列表是列表键和哈希键的底层实现之一当一个列表键只包含少量列表项,并且每个列表要么就是小整数值,要么就是长度比较短的字符串,那么使用压缩列表作为底层实现当一个哈希键只包含少量键值对,而且每个键值对的键和值要么是小整数值要是就是长度比较短的字符串,那么底层实现是压缩列表 2. 数据结构压缩列表是Redis为了节约内存而开发的,是一系列特殊编码的连续内存块组成的顺序...原创 2019-01-17 17:04:59 · 474 阅读 · 0 评论 -
Redis-数据结构与对象-对象
1.作用Redis使用对象作为五种不同类型的底层实现,字符串,列表,哈希,集合,有序集合等而对象是基于之前的分析的数据结构创建的。每个对象都至少用到一种数据结构,这意味着,Redis五大类型,底层实现是可以有多种实现的,这方便在不同场景下选择合适的底层结构,优化性能在Redis中,键和值均为一个对象2.数据结构typedefstructredisObject{...原创 2019-01-17 17:08:05 · 7651 阅读 · 9 评论 -
Redis-数据结构与对象-跳跃表
1. 作用跳跃表在Redis中主要运用在有序集合和集群节点用作内部数据结构 2. 数据结构typedef struct zskiplist{ zskiplistNode *header; //跳跃表头节点 zskiplistNode *tail; //跳跃表尾节点 int level; //层数,跳跃表中节点最大层数 int len...原创 2019-01-08 11:57:57 · 450 阅读 · 0 评论 -
Redis-单机数据库的实现-数据库原理
目录1. 服务器中的数据库2. 数据库键空间2.1. 读写空间时的维护操作3. 过期时间4. 过期删除策略4.1. 定时删除4.2. 惰性删除4.3. 定期删除4.4. Redis删除策略5. AOF、RDB和复制功能对对过期键的处理5.1. RDB5.2. AOF5.3. 复制6. 数据库通知1. 服务器中的数据库Redis也是个程...原创 2019-01-23 11:30:18 · 607 阅读 · 0 评论 -
运行期间动态切换Redis数据库
public void selectDB(int db) { LettuceConnectionFactory factory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory(); factory.setDatabase(db); fac...原创 2019-03-06 23:15:33 · 2944 阅读 · 1 评论