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