![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 96
Redis 相关文章
wifiiiiiiii
You may see me struggle, but you will never see me fall
展开
-
Redis学习(七)对象
文章目录1. 简介2. 对象的类型和编码2.1 对象类型 - type2.2 对象编码 - encoding3. 字符串对象3.1 raw 和 embstr 的区别是?3.2 字符串编码的转换3.3 不同字符串编码对应的命令实现参考1. 简介我们可知,Redis 的用到的主要的数据结构有:简单字符串(SDS)、链表、字典、压缩列表、整数集合等等。Redis 的对象都是由这些数据结构所实现。并且,Redis 为了可以对不同的对象在不同的使用场景下选择更加合适的数据结构实现,Redis 基于这些数据结构创建原创 2021-06-15 18:57:07 · 695 阅读 · 1 评论 -
Redis学习(六)压缩列表(ziplist)
文章目录11. 什么是压缩列表(ziplist)2. 压缩列表的构成2.1 压缩列表的组成2.2 压缩列表节点的组成2.2.1 previous_entry_length2.2.2 encoding2.2.2.1 字节数组编码2.2.2.2 整数编码2.2.3 content2.2.4 例子3. 压缩列表和数组的区别3.1 内存3.2 数据类型4. 压缩列表存在的“问题”5. 压缩列表的 API6. 参考7. 其他相关文章11. 什么是压缩列表(ziplist)压缩列表(ziplist) 是哈希键的底层原创 2021-06-01 17:35:29 · 728 阅读 · 0 评论 -
Redis学习(五)整数集合
文章目录1. 整数集合是什么2. 整数集合的数据结构3. 升级3.1 升级的好处3.1.1 提升整数集合的灵活度3.1.2 节约内存4. 降级5. 整数集合 API6. 参考7. 其他相关文章1. 整数集合是什么整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。例如:127.0.0.1:6379> SADD numbers 1 2 3 4 5 6 7 8 9 10(integer) 10翻译 2021-06-01 14:22:57 · 268 阅读 · 0 评论 -
Redis学习(四)跳跃表(skiplist)
1. 什么是跳跃表(skiplist)跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。Redis 使用跳跃表作为有序集合键(ZSET)的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时,Redis 就会使用跳跃表来作为有序集合键的底层实现。Redis 只在两个地方用到了跳跃表(skiplist)实现有序集合键在集群节点中用作内部数据结构1.2 为什么需要跳跃表(skipli原创 2021-05-31 07:49:19 · 737 阅读 · 0 评论 -
Redis学习(三)字典(hash)
1. 什么是字典(hash)Redis 的字典相当于 Java 语言里面的 HashMap,如图所示:它是无序字典,内部存储了很多键值对。实现结构上与 Java 的 HashMap也是一样的,都是**“数组 + 链表”**的二维结构。在数组位置发生 hash 冲突时,就会将冲突的元素使用链表串起来,如图所示:与 Java HashMap 不同的是,Redis 的字典的值只能是字符串,另外它们 rehash 的方式也不一样。因为 Java HashMap 在字典很大时,rehash 是一个耗时的操作原创 2021-05-25 18:35:33 · 566 阅读 · 0 评论 -
Redis学习(二)链表(list)
1. 什么是链表链表作为一种常用数据结构,链表内置在很多高级的编程语言里面,以为 Redis 使用的 C语言并没有内置这种数据结构,所以 Redis 构建了自己的链表实现。在Redis 中,链表的应用非常广泛,比如列表键的底层实现之一就是链表。当一个列表键包含了数量比较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用链表作为列表建的底层实现。2. 链表的数据结构2.1 链表节点typedef struct listNode { // 前置节点 struct原创 2021-05-23 10:41:31 · 440 阅读 · 2 评论 -
Redis学习(一)简单动态字符串(SDS)
文章目录1. 什么是简单动态字符串(SDS)2. SDS 的数据结构2.1 示例2.2 SDS 以 \0 结尾的好处3. SDS 基本使用3.1 SET3.1.1 语法3.1.2 示例3.2 GET3.2.1 语法3.2.2 示例3.3 GETRANGE3.3.1 语法3.3.2 示例3.4 MSET3.4.1 语法3.4.2 示例3.5 MGET3.5.1 语法3.5.2 示例3.6 STRLEN3.6.1 语法3.6.2 示例3.7 SETNX3.7.1 语法3.7.2 示例3.8 SETEX3.8.1原创 2021-05-22 15:29:22 · 941 阅读 · 0 评论 -
Redis 之 SessionCallback & RedisCallback 使用
SessionCallback & RedisCallback 的作用是:让RedisTemplate进行回调,通过它们可以在同一条连接下执行多个Redis命令。BeforeredisTemplate.opsForValue().set("key0", "value0");redisTemplate.opsForHash().put("hash0", "field", "test");SessionCallbackredisTemplate.execute(new SessionCal原创 2020-10-14 07:56:10 · 9577 阅读 · 1 评论