
redis
文章平均质量分 75
余_yu
这个作者很懒,什么都没留下…
展开
-
Redis 独立功能的实现
发布与订阅 将消息发给频道的订阅者和模式的订阅者: pubsub channels // 返回服务器被订阅的所有频道 pubsub channels "news.[is]" // 返回和 “news.[is]” 匹配的频道 pubsub numsub channel // 返回频道 channel(特定某一个)的订阅者数量 pubsub numpat // 返回服务器当前被订阅模式的数量 事务 事务的执行流程如下: 监视器 ...原创 2021-03-31 23:18:16 · 99 阅读 · 0 评论 -
Redis 多机服务器 复制、哨兵、集群
文章目录主从复制设置主从服务器旧版复制功能的实现新版复制功能的实现心跳检测重点回顾哨兵(Sentinel)集群 主从复制 设置主从服务器 使用 slaveof ip port 命令,将本服务器设置为参数对应服务器的从服务器。 步骤如下: 设置主服务器的地址和端口,首先将主服务器的IP和端口保存到服务器状态的masterhost和masterport 建立套接字连接 发送ping命令 身份验证 发送端口信息 同步 命令传播 旧版复制功能的实现 同步的步骤如下。旧版中,如果从服务器断线,重连时,也会进行完原创 2021-03-31 11:36:00 · 521 阅读 · 0 评论 -
redis 的 RDB 和 AOF
文章目录RDBRDB 文件的创建和载入自动间隔保存RDB 文件结构分析 RDB 文件重点AOF RDB Redis 是一个内存数据库,数据信息存储在内存中,一旦服务器进程退出,数据全部消失。为了解决这个问题,Redis提供了 RDB 持久化功能,可以将数据保存到 RDB 文件中。 RDB 文件的创建和载入 自动间隔保存 RDB 文件结构 分析 RDB 文件 重点 AOF ...原创 2021-03-30 14:49:14 · 356 阅读 · 0 评论 -
redis中的对象
五种对象 对象总共有五种,可以用type 命令查看数据库键对应的值对象的类型。 不同类型可能对应不同的编码格式,可以使用 object encoding key 来查看。 embstr编码的字符串对象是只读的。如果要修改,会先转换编码为 raw,然后修改。同时,对象就变成了 raw 类型的。 字符串对象 可以使用 append 命令,将非 raw 类型的对象转化为 raw类型。 列表对象 列表对象的编码可以是 ziplist 或者 linkedlist。 哈希对象 哈西对象的编码可以是 zip原创 2021-03-29 22:08:09 · 307 阅读 · 0 评论 -
redis底层数据结构2——跳跃表、压缩列表、整数集合
文章目录跳跃表结构整数集合压缩列表 跳跃表 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。 在大部分情况下,跳跃表的效率可以和平衡树相媲美,并且因为跳跃表的实现比平衡树要来得更为简单,所以有不少程序都使用跳跃表来代替平衡树。 Redis使用跳跃表作为有序集合键的底层实现之一,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员原创 2021-03-29 20:19:12 · 221 阅读 · 0 评论 -
redis底层数据结构1——简单动态字符串、链表、字典
文章目录简单动态字符串SDS 的结构SDS 和C字符串的区别(优势)常数复杂度获取字符串长度杜绝缓冲区溢出减少修改字符串时带来的内存分配次数空间预分配惰性空间释放二进制安全兼容部分C字符串函数链表链表结构字典结构实现哈希算法解决键冲突rehash哈希表扩展和述所的条件rehash 的过程渐进式 rehash 简单动态字符串 为了提高效率,redis 以空间换时间为代价,创建了一种简单动态字符串(simple dynamic string,SDS)。 在redis里面,C字符串只会作为字符串字面量用在无需对字原创 2021-03-29 16:13:53 · 410 阅读 · 0 评论 -
redis 分布式锁
文章目录前言实现方式方案1 setnx + setex方案2 set key value nx ex方案3 random value + lua script 前言 Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。 Redis 可以存储键和五种不同类型的值之间的映射。键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 与传统数据库不同,Redis 的数据是存在内存中的,所原创 2021-03-10 20:42:02 · 309 阅读 · 1 评论