DeathWhispers

Redis的持久化方案

面试的时候,如果不能完整回答出来,也不会有大问题。重点,在于有条理,对 RDB 和 AOF 有理解。 🦅 持久化方式 Redis 提供了两种方式,实现数据的持久化到硬盘。 1、【全量】RDB 持久化,是指在指定的时间间隔内将内存中的数据集快照写入磁盘。实际操作过程是,fork 一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。 2、【增量】A...

Redis的应用场景

Redis的应用场景 计数器 可以对String进行自增自减运算,从而实现计数器功能。Redis这种内存型数据库的读写性能非常高,很适合存储频繁读写的计数量 缓存 将热点数据放到内存中,设置内存的最大使用量以及淘汰策略来保证缓存的命中率 会话缓存 可以使用Redis来统一存储多台应用服务器的会话信息。当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应...

Redis的事务

Redis的事务 Redis事务天然具有隔离性 Redis事务时单进程程序,并且他保证在执行事务时,不会对事务进行中断,事务可以运行知道执行完所有事务队列中的命令为止。因此,Redis的事务是总是带有隔离性的。 Redis事务保证原子性吗,支持回滚吗 Redis中,单条命令是原子执行的,但事务不保证原子性,且没有回滚。事务中任意命令执行失败,其余命令仍会被执行。 Redis事务其他...

Redis如何保证与数据库的数据一致

Redis如何保证与数据库的数据一致 当我们对数据进行修改的时候,到底是先删缓存,还是先写数据库? 1. 如果先删缓存,再写数据库 在高并发场景下,当第一个线程删除了缓存,还没有来得及写数据库,第二个线程来读取数据,会发现缓存中的数据为空,那就会去读数据库中的数据(旧值、脏数据),读完之后,把读到的结果写入缓存(此时,第一个线程已经将新的值写到缓存里面了),这样缓存中的值就会被覆盖为修...

Redis为什么这么快

Redis为什么这么快 完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是时间复杂度低O(1) 数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的 采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因...