![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 94
JYY_JYY_
这个作者很懒,什么都没留下…
展开
-
Redis——Redis实现分布式锁
分布式锁 基于数据库实现分布式锁 基于缓存Redis实现分布式锁 Redisson 基于Zookeeper实现分布式锁 1. 数据库实现(1)悲观锁实现:利用select … where … for update 加排他锁,业务处理完再用commit()释放锁注:要注意行锁转换成表锁的问题 InnoDB引擎在加锁的时候,只有通过索引进行检索的时候才会使用行级锁,否则会使用表级锁。这里我们希望使用行级锁,就要给method_name添加索引,值得注意的是,这个索引一定要.原创 2021-04-06 15:15:31 · 193 阅读 · 0 评论 -
Redis——缓存穿透 / 雪崩 / 击穿
缓存穿透 BloomFilter 缓存雪崩 缓存击穿 布隆过滤器1.缓存穿透 / 雪崩 / 击穿从事态严重性来讲:穿透 > 雪崩 > 击穿缓存穿透:数据库中数据不存在,缓存也不存在。每次都大量请求数据库,打穿数据库 解决方法 1. 缓存预热:缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统,避免用户请求的时候,再去加载相关的数据 2. 布隆过滤器:见下 缓存雪崩:原有缓存失效(过期),新缓存未到期间;或者redis挂了。大量请求打向..原创 2021-02-24 16:31:53 · 100 阅读 · 0 评论 -
Redis——第17章:集群
概述 节点和集群 命令(conf + 握手 + 查看) 数据结构 clusterState clusterNode clusterLink 槽slot1. 概述Redis有三种集群方式:主从模式,Sentinel模式(哨兵模式),Cluster模式(集群模式)主从模式 master主服务器用于读写,slave从服务器用于读 master挂了,数据不一定会丢失,因为slave备份了,但是redis不再提供写服务 使用:SLAVE OF指令,或者co.原创 2021-02-23 15:06:01 · 84 阅读 · 0 评论 -
Redis——第16章:哨兵模式
11. 概述概述: 由一个或多个哨兵实例组成的哨兵系统可以监视任意多个主服务器及它们的从服务器 如果某主服务器宕机,哨兵系统会自动选取该主服务器的某个从服务器作为新的主服务器,保证高可用性 例子: (1)正常运行(server1为主服务器,server2 / 3 / 4 为从服务器) (2)此时server1意外宕机,哨兵系统察觉到其下线 (3)如果在规定时间内server1没上线,哨兵系统会重新选举 选举:按照规则选出该宕机主服务器下的某个从服.原创 2021-02-22 18:12:20 · 120 阅读 · 0 评论 -
Redis——第12章:事件
Redis线程模型 模型优势(高效原因) 参考:epoll, select, poll原创 2021-02-20 16:32:11 · 103 阅读 · 0 评论 -
Redis复习提纲
第1-7章:数据结构笔记:https://blog.csdn.net/qq_41157876/article/details/108875869数据结构简单动态字符串(SDS) 优点:O(1)获取长度;空间预分配,惰性空间释放 链表 字典 渐进式rehash 跳跃表 整数集合 升级 压缩列表 连锁更新带来的问题 第8章:对象笔记:https://blog.csdn.net/qq_41157876/article/details/108878853原创 2020-10-27 07:11:00 · 178 阅读 · 0 评论 -
Redis——9. 哨兵机制
监控 提醒 自动故障迁移1.Sentinel启动与初始化启动命令:redis-sentinel /path/to/your/sentinel.conf初始化步骤:启动服务器,使用sentinel专用代码 初始化SentinelState,建立与主服务器的连接(1)初始化服务器具体步骤与服务器初始化差不多,但是少了点步骤,比如不会进行RDB/AOF恢复(2)使用sentinel专用代码比如:1.使用 define REDIS_SENTINEL_PORT 2.原创 2020-10-10 08:12:45 · 126 阅读 · 0 评论 -
Redis——第15章:复制
1.复制从2.8开始,redis使用PSYNC命令来代替SYNC执行复制时的同步操作PSYNC具有两种模式:1. 完整重同步(full resync)从服务器发送同步请求(PSYNC) 主服务器执行BGSAVE,在后台生成RDB文件,并使用一个缓冲区记录从现在开始执行的所有写命令 RDB完成后,主服务器发送给从服务器RDB文件 主服务器发送缓冲区中的内容2. 部分重同步(partial resync)适用于断线重连情况2.部分重同步的实现(1)复制偏移量复制的双方——主原创 2020-10-09 01:26:28 · 185 阅读 · 1 评论 -
Redis——7. 排序&位运算
排序命令 实现原理1. 命令常用:alpha, asc/desc,limit start count.1. SORT key //对set,list 数值排序2. SORT key ALPHA //对set,lsit 字符串排序3. SORT key DESC //默认升序ASC(可不写),DESC降序4. SORT key LIMIT 0 4 //从第0条开始,一共返回4条5. SORT key BY ... //后面讲6. SORT ..原创 2020-10-03 23:35:38 · 369 阅读 · 0 评论 -
Redis——第13,14章:redisClient + redisServer + 交互过程 + serverCron函数
1.redisClient结构2.Client和Server交互过程3.redisServer结构4.redisServer初始化5.serverCron时间事件函数1.redisClient结构int fd; 记录客户端正在使用的socket描述符 fd=-1:伪客户端,AOF载入或Lua脚本 fd!=-1:普通客户端 robj *name; 客户端名字 CLIENT setname命令可以更改name int flags; 属性标志.原创 2020-10-03 22:50:18 · 417 阅读 · 0 评论 -
Redis——第10,11章:RDB和AOF持久化
持久化RDB AOF1.RDB持久化1. 命令SAVE:阻塞进程,客户端的所有命令都会被拒绝BGSAVE:不阻塞,创建子进程两者都是由rbdSave函数,(如果没有开启AOF),开启服务器自动载入RDB文件。2.自动定时保存通过设置save选项,服务器每隔一段时间自动执行一次BGSAVE命令//只要满足以下条件的任意一个,BGSAVE就会被执行//服务器在900秒内,对数据库至少进行了1次修改//服务器在300秒内,对数据库至少进行了10次修改//服务器.原创 2020-10-03 08:09:50 · 141 阅读 · 0 评论 -
Redis——第9章:数据库 + 过期/淘汰策略
本章内容服务器 过期时间 数据库1.服务器和服务器有关的数据结构存在redisServer中,客户端存在redisClient中struct redisServer{ //一个数组保存服务起中所有数据库 redisDb *Db; //记录数据库大小,默认16 int dbnum;}struct redisClient{ //客户端指向当前在使用的数据库 redisDb *Db;}2.数据库数据库格式,即db.原创 2020-10-01 06:34:21 · 191 阅读 · 0 评论 -
Redis——第8章:对象
Redis中每个对象都由redisObject结构表示,分别是type,encoding,ptrtypedef struct redisObject{ //类型,共5种 unsigned type:4; //编码,即真正使用的数据结构 unsigned encoding:4; //指针指向数据结构 void *ptr;}robj;type:5种 REDIS_STRING:字符串 REDIS_LIST:列表 REDI原创 2020-09-30 08:41:34 · 143 阅读 · 1 评论 -
Redis——第1-7章:数据结构
简单动态字符串(SDS)链表字典跳跃表整数集合压缩列表原创 2020-09-29 23:29:16 · 308 阅读 · 1 评论