![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
tanxi_faith
The longer climb, The better see
展开
-
Redis 之 LRU 与 LFU
一、前述官方文档:https://redis.io/topics/lru-cache众所周知,Redis 是一个基于内存的数据库,因此单线程的读写避免了频繁的 cpu 上下文切换开销,同时 redis 也可以用作发布订阅、延时队列、分布式锁等等很多场景,来实现我们的业务需求,今天分享一下 redis 里的 lru二、lru 的一些故事lru 全称是 Least Recently Used,...原创 2019-08-06 00:42:12 · 4815 阅读 · 2 评论 -
Redis 之 RDB 与 AOF
一、前述持久化都不陌生,mysql 存储就是最经典的持久化,其实也就是把我们想要的数据长久的保存在磁盘上Redis 提供了两种不同的持久化选项:1、RDB 持久化在指定的时间间隔执行数据集某个时间点的快照2、AOF 持久化会记录服务器收到的每个写操作,并且在 server 重启的时候重新被释放加载,重新建立一个数据集,命令使用跟 Redis 本身协议相同的格式记录,使用追加的方式。当 AO...原创 2019-08-08 16:02:23 · 202 阅读 · 0 评论 -
Redis 之 持久化与灾难
一、AOF truncated 如何处理?1、写入 AOF 文件的时候服务器 crash,或者挂在 AOF 文件的数据卷已经满了,这是都是有可能的,当这种情况发生时,AOF仍然包含指定时间点版本数据集的一致数据(如果使用默认的AOF fsync策略,该数据集可能老了一秒钟),但是写入 AOF 文件的最后一条命令可能会被 truncated,这时候 Redis 会丢失最后那条不正确的命令,在这种情...原创 2019-08-08 16:03:40 · 519 阅读 · 0 评论 -
Redis 之 BGREWRITEAOF
一、关于 BGREWRITEAOF在前面的一篇文章中,分享了关于 redis 的持久化,Redis 之 RDB 与 AOF,本文简单介绍下 AOF 的一个很重要的命令 - BGREWRITEAOF,1.0.0 开始可以使用,指定 Redis 启动 AOF 重写进程。重写将创建当前AOF 文件的一个小型优化版本。1、如果 BGREWRITEAOF 失败,服务野不会丢失任何数据,因为旧的 AO...原创 2019-08-08 16:26:24 · 1471 阅读 · 0 评论 -
Redis 之内存淘汰源码分析
一、前述在上一篇文章中,介绍了一下 Redis LRU 内存淘汰、LFU 内存淘汰以及两种算法的区别:Redis 之 LRU 与 LFU可以知道,LRU我们可以配置六种策略,LFU 同样可以配置,那么今天就来看看源码, Redis 是怎样的一个逻辑来进行内存淘汰的二、 源码概览int freeMemoryIfNeeded(void) { (1) i...原创 2019-08-07 15:04:08 · 288 阅读 · 0 评论