
redis
清雪冰橙
智商不够,时间来凑。
展开
-
Redis对过期Key的删除策 / Redis事务
Redis对过期key的删除策略如果假设你设置了一批 key 只能存活 1 个小时,那么接下来 1 小时后,redis 是怎么对这批 key 进行删除的?定期删除 + 惰性删除定期删除:redis是默认每隔100ms就随机抽取一些设置了过期时间的key,检查是否过期,如果过期就删除。注意!这里是随机抽取, 这样即使在redis中存储了很多数据的情况下,依然能够保证性能.惰性删除:懒惰删除就如字面意思,每次在获取key的时候,会排查这个key是否过期,如果过期了就删除。Redis内存原创 2020-06-15 19:50:21 · 290 阅读 · 0 评论 -
Redis主从模式学习
单机Redis的瓶颈容量瓶颈( 单台Redis提供的容量有限 )QPS瓶颈( 单台Redis能提供的有限 )机械故障( 单台redis无法保证高可用 )主从复制的约定一个master可以有多个slave一个slave只能用一个master数据流向是单向的,master到slave (所以要求一般slave是read-only的,不然就无法保证主从一致性了)主从配置的两种方式slaveof命令(运行中执行)例如,机器A的ip为ipA, 机器B的ip为ipB,机器A上的redis作为原创 2020-06-15 17:07:55 · 891 阅读 · 0 评论 -
秒杀项目总结(附秒杀系统设计)
GitHub:链接地址UserController("/user")获取验证码("/getotp")随机生成10000~99999的数字将验证码同对应手机号关联,即使将 < 手机号, 验证码 > 这个KV对存到session中模拟短信发送(仅仅将其打印出来)返回通用对象注册("/register")根据手机号从session中获取验证码若验证成功,则调用userService的注册方法(注册过程是一个事务)注册内容主要就是合法性判断,数据库的更新等等(使用MD5对密码原创 2020-06-14 18:14:54 · 2844 阅读 · 0 评论 -
redis的数据结构以及使用场景分析
redis的数据结构以及使用场景分析1. stringa. 底层结构string的数据结构存储的是key-value类型, value不仅可以是string,也可以是数字。redis中的String是可以修改的,称为动态字符串(SDS),其实就是维护了一个预分配的字节数组,如下struct SDS{ T capacity; //数组容量 T len; //实际长度 byte flages; //标志位,低三位表示类型 byte[] conte原创 2020-06-12 11:31:23 · 253 阅读 · 0 评论 -
Redis缓存雪崩/穿透/击穿
1. 缓存的收益与成本1. 收益:加速读写读缓存中的数据要比读数据存储位置的速度要快。(例如:寄存器-内存,内存-磁盘)降低后端负载如果不加缓存的话,并发的压力会直接加到后端数据库上,并发较大的时候,数据库可能会hold不住,而这里可以通过增加一层缓存,通过直接访问缓存不仅访问速度更快,而且减少了io次数,减少了数据库的压力。2. 成本:数据不一致:缓存层是数据层的时间窗口不一致,和更新策略有关。代码维护成本:多了一层缓存逻辑运维成本:例如R原创 2020-05-29 20:24:27 · 417 阅读 · 0 评论 -
面试突击——Redis
一. memcache和Redis的区别Memcache:代码层次类似Hash支持简单数据类型不支持数据持久化存储不支持主从不支持分片Redis:数据类型丰富支持数据磁盘持久化存储支持主从支持分片二. 为什么Redis那么快?完全基于内存,绝对部分请求是纯粹的内存操作。数据结构结构简单,对数据操作也简单。不使用表,不需要对多个表进行关联,存储结构是键...原创 2020-04-12 20:22:27 · 274 阅读 · 0 评论