
redis
kobexzf
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis-其它
2redis事务multi/exec,没什么原子性,当成批量操作即可,某命令执行失败后面命令依然执行,先入列到exec才执行,结合watch机制可保证被watch的key从watch到exec期间不变事务才执行(隔离),无法回滚。这里的原子性分两点谈1隔离,批量操作不可分割,不会并发修改到我的数据2回滚,某命令失败回滚到初始状态。3lua脚本执行时不会有其他脚本或redis命令同时执行(隔离),失败后异常后面命令不执行,无法回滚。...原创 2022-07-21 00:34:45 · 234 阅读 · 0 评论 -
redis锁
redis原创 2022-07-04 20:37:57 · 180 阅读 · 0 评论 -
雪崩 穿透 击穿
缓存雪崩:同一时间大量key到过期时间失效,可在设置失效时间时加随机数,如果直接修改数据库,那么一定会有不一致,通过失效时间去反复刷新缩短不一致的时间, 为了避免数据一直存在,一定要设置过期时间 如果通过程序修改数据,先删除缓存再修改数据可以保证一致性 穿透:反复访问数据库不存在的数据 击穿:极度热点key在失效瞬间,大量请求击穿数据库 ...原创 2019-09-17 14:03:07 · 2058 阅读 · 0 评论 -
redis过期
超过maxmemory,触发maxmemory_policy maxmemory_policy:6种 volatile-lru:从已设置过期时间的数据中挑选最近最少使用的数据淘汰; allkeys-lru:从数据集中挑选最近最少使用的数据淘汰; volatile-random:从已设置过期时间的数据中任意选择数据淘汰; allkeys-random:从数据集中任意选择数据淘汰; volatile-...原创 2019-08-27 11:04:50 · 108 阅读 · 0 评论 -
Redis集群
Redis: 支持分片和主从 Redis主从复制集群: Slave可读但不建议读(若未开启tcp的NO_DELAY会带来脏读,数据有点过期),不用读写分离,全走master即可,内存读写很快的,slave作为高可用,slaveof搭建,slave初始全量复制,后续部分复制,PSYNC 手动故障转移:麻烦,找一个slave变成master(slaveof no one),其他slave(slaveo...原创 2019-07-18 19:53:09 · 153 阅读 · 0 评论 -
客户端和服务器
redisServer 含redisClient链表 redisClient{ fd 套接字描述符 flags (如master,blocked) querybuf (输入缓冲区,保存客户端发送命令) argc (解析发送命令后的参数个数 3) argv (解析发送命令后的参数数组 set msg hello) redisCommand *cmd (解析后指向set命令实现) 输出缓冲区(保存回...原创 2018-12-17 15:25:09 · 158 阅读 · 0 评论 -
事件-线程模型
redis 单线程 事件:文件事件和时间事件 文件事件:IO多路复用, 客户端connect,write,close,AE_READABLE事件 客户端read,AE_WRITABLE事件 流程说明:客户端connect,AE_READABLE,连接应答处理器 客户端write,AE_READABLE,命令请求处理器 说明:连接active的过程中,服务器侧的 客户端socket的AE_READ...原创 2018-12-17 14:41:43 · 280 阅读 · 0 评论 -
rdb/aof
rdb:save(阻塞),bgsave(新进程) 优先aof,没有才rdb save选项 save 900 1 save 300 10 900秒1次修改或300秒10次修改 自动bgsave save实现:每隔100毫秒检查一次,dirty上次save/bgsave修改后次数,lastsave上次save/bgsave时间 rdb 文件结构: aof 记录写命令,分为命令追加(写到aof...原创 2018-12-17 14:06:14 · 296 阅读 · 1 评论 -
redis 数据库
redisServer (dbnum,db数组(16,默认是0)) redisClient ( db(实现select)) 单个redisDb (dict,expires两个字典) 过期删除: 定时删除(定时器在过期时间点删除),不好实现,对cpu不友好,cpu应该主要用于客户端请求,而不是无关紧要的删除 惰性删除(get的时候检查),万一不get或get很晚呢?浪费内存,不过可以接受 定期删除(...原创 2018-12-17 11:15:37 · 117 阅读 · 0 评论 -
Redis 数据结构
五大结构实现String,map, list,set,sortedSet C字符串Redis用作字面量,不修改 SDS(简单动态字符串),方便修改,free(2) ,len(5) char[] ,末尾\0 不计数原创 2018-12-14 15:37:59 · 148 阅读 · 0 评论