![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 81
记录Redis学习笔记,备忘
Guanam_
风生雨起无人问,奈何花落却天晴。
展开
-
Redis 持久化策略
AOF 重写是 AOF 持久化的一个机制,用来压缩 AOF 文件,通过 fork 一个子进程,重新写一个新的 AOF 文件,该次重写不是读取旧的 AOF 文件进行复制,而是读取内存中的Redis数据库,重写一份 AOF 文件,有点类似于 RDB 的快照方式。AOF的文件会越来越大,当AOF达到一定程度大小之后再通过AOF文件恢复数据是异常缓慢的,那么对于这种情况Redis在开启AOF持久化机制的时候会存在AOF文件的重写。AOF 日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。原创 2023-05-08 14:25:12 · 235 阅读 · 0 评论 -
Redis 的数据结构解析
使用对象的另一个好处是, 我们可以针对不同的使用场景, 为对象设置多种不同的数 据结构实现, 从而优化对象在不同场景下的使用效率。底层:用来做基数统计的算法,在输入元素的数量或体积非常大时,计算基数所需的空间总是固定的,并且是很小的(12k)。整数集合的底层实现为数组,这个数组以有序、不重复的方式保存集合元素,在有需要的时候,程序会根据新添加元素的类型,改变整个数组的类型。Set:无序集合(内部使用值为空的哈希表),它通过计算hash的方式来快速去重,它能以 O(1) 的复杂度快速查询数据。原创 2023-05-08 14:22:31 · 115 阅读 · 0 评论 -
Redis与MySQL双写一致性
并发读写时会出现脏数据问题,ABBAA更新数据库为1B更新数据库为2B更新缓存为2A更新缓存为1。原创 2023-05-07 19:12:14 · 305 阅读 · 0 评论 -
Redis实现分布式锁总结
分布式锁,顾名思义,就是分布式项目开发中用到的锁,可以用来控制分布式系统之间同步访问共享资 源。优点:Redis 锁实现简单,理解逻辑简单,性能好,可以支撑高并发的获取、释放锁操作。优点:zookeeper 天生设计定位就是分布式协调,强一致性,锁很健壮。如果获取不到锁,只需要添加一 个监听器就可以了,不用一直轮询,性能消耗较小。缺点:在高请求高并发下,系统疯狂的加锁释放锁,最后 zk 承受不住这么大的压力可能会存在宕机的风 险。原创 2023-05-07 19:13:56 · 229 阅读 · 0 评论 -
Bitmap实现签到功能
Bitmap 的底层数据结构用的是 String 类型的 SDS 数据结构来保存位数组,Redis 把每个字节数组的 8 个 bit 位利用起来,每个 bit 位 表示一个元素的二值状态(不是 0 就是 1)。同样的 UserID offset 都是一样的,当一个 userID 在 7 个 Bitmap 对应对应的 offset 位置的 bit = 1 就说明该用户 7 天连续打卡。在记录了一个亿的用户连续 7 天的打卡数据,如何统计出这连续 7 天连续打卡用户总数呢?常见场景:二值状态统计。原创 2023-05-07 19:16:35 · 682 阅读 · 0 评论 -
Redis过期策略和内存淘汰策略
过期字典的键指向 Redis 数据库中的某个 key(键),过期字典的值是一个 long long 类型的整数,这个整数保存了 key 所指向的 数据库键的过期时间(毫秒精度的 UNIX 时间戳)。不会花费额外的CPU资源来检测Key是否过期,但如果存在较多未使用且过期的Key时,所占用的内存就不会得到释放。在设置 Key 的过期时间的同时,会创建一个定时器 timer,定时器在 Key 过期时间来临时,会立即执行对 Key 的删除操作。从库不会进行过期扫描,从库对过期的处理是被动的。原创 2023-05-07 19:18:25 · 49 阅读 · 0 评论