Redis单线程的含义 Redis 单线程指的是「接收客户端请求->解析请求 ->进行数据读写等操作->发生数据给客户端」(网络 IO 以及键值对指令读写是由一个线程来执行的)这个过程是由一个线程(主线程)来完成的,这也是我们常说 Redis 是单线程的原因。 但实际还有一些后台线程(BIO)用于执行一些比较耗时的操作。 后台线程相当于一个消费者,生产者把耗时任务丢到任务队列中,消费者(BIO)不停轮询这个队列,拿出任务就去执行对应的方法即可。 关闭文件、AOF 刷盘、释放内存这三个任务都有各自的任务队列: BIO_CLOSE_FILE,关闭文件任务队列...
使用缓存的时候,我们经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中。大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了做数据同步(比如 Redis 集群的主从节点通过 RDB 文件同步数据)。 Redis 不同于 Memcached 的很重要一点就是,Redis 支持持久化,而且支持 3 种持久化方式: 快照(snapshotting,RDB) 只追加文件(append-only file,AOF) RDB 和 AOF 的混合持久化(Redis 4.0 新增) RDB 持久化 什么是 RDB 持久化 RDB持久化...