Redis系列
毛毛怪不奇怪
这个作者很懒,什么都没留下…
展开
-
Redis常用数据类型及其适用场景精准解读
字符串String 缓存 :数据以字符串进行存储 计数器 :点赞次数,视频播放次数 分布式共享session :存sessionId 列表List 消息队列 集合Set 标签 共同好友(交集) 哈希Hash 记录博客中博主的主页访问量、昵称、联系方式等 有序集合ZSet 排行榜 bitmap 快速排序、快速去重、快速查询 hyperloglog 海量数据的基数统计功能 geospatial 计算俩地之间原创 2022-01-07 15:52:35 · 501 阅读 · 0 评论 -
Redis回收策略精准精准解读
回收策略 noeviction 返回错误 allkeys-lru 回收最少使用的key volatile-lru 在过期key中回收最少使用的key allkeys-random 随机回收key volatile-random 随机回收过期key volatile-ttl 回收过期key中存活时间较短的key 回收进程 1)Redis客户端运行命令,添加数据 2)发现大于maxmemory限制 根据策略进行回收 ...原创 2022-01-02 16:50:14 · 676 阅读 · 0 评论 -
Redis为什么这么快?精准解读
单线程 避免了上下文切换的资源消耗和线程之间的竞争消耗和锁的开支以及死锁导致的性能消耗 纯内存操作 避免了大量访问数据库读取磁盘 I/O多路复用 单线程处理多个连接请求,减少网络 IO 的时间消耗; 空闲时阻塞,依次顺序的处理就绪的流,避免了大量无用操作; 数据结构 不同场景使用对应的数据结构,减少内存使用和网络开支 ...原创 2021-12-31 16:07:59 · 586 阅读 · 0 评论 -
Redis缓存穿透、击穿、雪崩和解决方案
缓存穿透 缓存和数据库都没有命中数据库 解决方案: 1)把空对象缓存起来 2)布隆过滤器 拦截一定不存在的key 缓存击穿 数据在某个时刻批量过期,大部分请求直接落到数据库 解决方案: 1)热点数据可以设置不过期 2)批量入库数据,设置合理的过期时间 3)访问数据的时候,更新过期时间 缓存雪崩 缓存大面积过期或者系统出现故障导致请求直接落到数据库 解决方案: 1)搭建高可用的Redis集群和哨兵 2)限流降级:加锁或者使用队列 3)数据预热 并且设置不同的过期时间 ...原创 2021-12-31 15:40:26 · 362 阅读 · 0 评论 -
Redis过期策略精准解读
Redis过期策略 redis的keys有俩种过期策略:被动和主动。 过期时间 如果没有设置过期时间,正常情况下,key一直存在,除非使用命令显示删除,例如DEL。 EXPIRE指定过期时间,如果过期的key执行EXPIRE操作也会更新过期时间。 过期时间和计算机时间有关,误差在0-1毫秒之间,保持计算机时间的精准。 被动过期 当客户端访问redis的时候,key会被发现有没有过期。 主动过期 有些key一直不被访问,Redis每秒10次做的事情 : 测试随机的20个keys进行相关原创 2021-12-29 15:31:13 · 293 阅读 · 0 评论 -
RDB和AOF持久化策略精准解读
Redis持久化策略 redis提高俩种持久化策略:RDB和AOF。 开启俩种持久化方式的话,redis重启的时候会优先采用AOF文件来恢复数据,因为AOF文件比RDB文件保存的数据更完整。 RDB持久化策略 通过制定的时间间隔生成快照对数据进行存储,Redis 将数据库快照保存在名字为 dump.rdb的二进制文件中。当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作: Redis 调用forks. 同时拥有父进程和子进程。 子进程将数据集写入到一个临时 RD原创 2021-12-29 13:01:58 · 350 阅读 · 0 评论