
Redis
文章平均质量分 72
redis
苦艾酒丶
好好学习,天天向上。
毕竟,是一个立志成为大神的人啊。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis底层数据结构之双端链表
链表这种数据结构相信大家也不陌生,有很多类型,比如单向链表,双向链表,循环链表等,链表相对于数组来说,一是不需要连续的内存块地址,二是删除和插入的时间复杂度是 O(1) 级别的,非常的高效,但比不上数组的随机访问查询方式。 一样的那句话,没有最好的数据结构,只有恰到好处的数据结构,比如我们后面要介绍的更高层次的数据结构,字典,它的底层其实就依赖的链表规避哈希冲突,具体的我们后面再说。 redis 中借助 C 语言实现了一个双向链表结构: struct listNode{ // 前一个节点的指针原创 2021-01-27 20:32:50 · 290 阅读 · 0 评论 -
Redis底层数据结构之字符串的SDS
前言 PS:Redis有八种编码,但底层数据机构是六种。 二、SDS(simple dynamic string)简单动态字符串 结构定义 struct sdshdr{ //记录buf数组中已使用字节的数量 //等于 SDS 保存字符串的长度 int len; //记录 buf 数组中未使用字节的数量 int free; //字节数组,用于保存字符串 char buf[]; } SDS保存的字符串结构图示: 优势: 常数复杂度获取原创 2021-01-22 20:24:17 · 172 阅读 · 0 评论 -
Redis底层数据结构之有序集合的跳跃表
Redis 当一个有序集合包含的元素数量多,又或者有序集合中的元素的成员是比较长的字符串时,Redis就会使用跳跃表作为有序集合键的底层实现 跳跃表的基本思想 首先我们看一个普通的链表结构: 这个链表中,如果要搜索一个数,需要从头到尾比较每个元素是否匹配,直到找到匹配的数为止,即时间复杂度是 O(n)。同理,插入一个数并保持链表有序,需要先找到合适的插入位置,再执行插入,总计也是 O(n)的时间。 但假如我们每相邻两个节点之间就增加一个指针,让指针指向下一个节点,如下图: 如上图,我们新创建一个链表,它原创 2021-01-21 22:01:22 · 253 阅读 · 0 评论 -
Redis为什么变慢了?一文讲透如何排查Redis性能问题 | 万字长文
Redis 作为优秀的内存数据库,其拥有非常高的性能,单个实例的 OPS 能够达到 10W 左右。但也正因此如此,当我们在使用 Redis 时,如果发现操作延迟变大的情况,就会与我们的预期不符。 你也许或多或少地,也遇到过以下这些场景: 在 Redis 上执行同样的命令,为什么有时响应很快,有时却很慢? 为什么 Redis 执行 SET、DEL 命令耗时也很久? 为什么我的 Redis 突然慢了一波,之后又恢复正常了? 为什么我的 Redis 稳定运行了很久,突然从某个时间点开始变慢了? 如果你并不清楚转载 2021-01-20 20:32:01 · 684 阅读 · 1 评论 -
Codis安装部署Redis5.x集群
1.Go安装 Go下载地址 解压 tar zxf go1.9.1.linux-amd64.tar.gz -C /usr/local/ ------------------------------------------------------- mkdir -p /usr/local/gopath ###go第三方包的安装包路径 在gopath文件夹下必须要有 bin pkg src三个文件夹 cd /usr/local/gopath/ mkdir bin mkdir pkg mkdir src原创 2020-05-29 14:55:07 · 245 阅读 · 0 评论 -
Redis5.x用cluster搭建集群
Redis版本:5.0.5 1机6节点、3主3从 1.装Redis5.0.5版本至/usr/local/redis/目录下 2.给每个实例创建1个目录,以端口号为区分,用来存放持久化文件和日志等文件。 mkdir /usr/local/redis/6379 mkdir /usr/local/redis/6380 mkdir /usr/local/redis/6381 mkdir /usr/local/redis/6382 mkdir /usr/local/redis/6383 mkdir /usr/loca原创 2020-05-27 17:32:08 · 338 阅读 · 0 评论 -
CentOS7 Redis5.0的主从复制和哨兵模式
1.Redis主从复制配置步骤 主服务器49.233.182.123 从服务器106.54.139.60 两台服务器都确保安装了redis https://blog.youkuaiyun.com/php12345679/article/details/103803953 主服务器不用改任何配置 从服务器修改redis.conf文件 # replicaof <masterip> ...原创 2020-01-02 18:56:22 · 371 阅读 · 0 评论 -
10分钟彻底理解Redis的持久化机制:RDB和AOF
什么是Redis持久化? Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客户端请求时,所有操作都在内存当中进行, 如下所示: 这样做有什么问题呢? 其实,只要稍微有点计算机基础知识的人都知道,存储在内存当中的数据,只要服务器关机(各种原因引起的),内存中的数据就会消失了,不仅服务器关机会造成数据消失,Redis服务器守护进程退出,内存中的数据也一样会消失。 对于...转载 2019-07-05 16:21:36 · 394 阅读 · 0 评论 -
缓存穿透,缓存击穿,缓存雪崩区别和解决方案
1. 缓存穿透 缓存穿透是指查询一个一定不存在的数据。由于缓存不命中,并且出于容错考虑,如果从数据库查不到数据则不写入缓存,这导致这个不存在的数据每次请求都要到数据库去查询,失去了缓存的意义。 请求的数据在缓存大量不命中,导致请求走数据库。缓存穿透如果发生了,也可能把我们的数据库搞垮,导致整个服务瘫痪! 解决办法: 1)由于请求的参数是不合法的(每次都请求不存在的参数),于是我...转载 2019-07-23 14:24:55 · 110 阅读 · 0 评论