Redis常见概念问题(面试)

Redis是什么?

Redis(Remote Dictionary Server)是一个使用 C 语言编写键值对数据库,也是非关系型数据库
Redis 的数据是存在内存中的。所以读写速度非常快
Redis的单条命令是原子性的

Redis优缺点?

优点

  1. 基于内存操作,内存读写速度快。
  2. 支持多种数据类型,包括String、Hash、List、Set、ZSet等。
  3. 支持持久化。Redis支持RDB和AOF两种持久化机制,持久化功能可以有效地避免数据丢失问题
    缺点
  4. 结构化查询的支持比较差
  5. 单线程模型:Redis采用单线程模型来处理客户端请求,这意味着在高并发场景下,性能可能受到限制

Redis为什么这么快?

基于内存:Redis是使用内存存储,没有磁盘上的开销
IO多路复用模型:Redis 采用 IO 多路复用技术。实现高吞吐的网络IO
单线程模型:避免了多线程频繁上下文切换带来的开销

Redis应用场景有哪些?

  1. 缓存热点数据,缓解数据库的压力。
  2. 利用 Redis 原子性的自增操作,可以实现计数器的功能,比如统计用户点赞数
  3. 好友关系,利用集合的一些命令交集、差集,实现共同好友、共同爱好之类的功能

Redis事务的原理

Redis事务的原理是将一个事务范围内的若干命令发送给Redis,然后再让Redis依次执行这些命令

Redis事务支持隔离性吗,保证原子性吗,支持回滚吗??

Redis 是单线程程序,并且它保证在执行事务时,不会对事务进行中断,事务可以运行直到执行完所有事务队列中的命令为止。因此,Redis 的事务是总是带有隔离性的。

Redis单条命令是原子性执行的,但事务不保证原子性。事务中任意命令执行失败,其余的命令仍会被执行。

持久化机制(双写一致性)

持久化就是把内存的数据存储起来防止服务突然中止导致内存数据丢失
RDB会根据指定的规则定时将内存中的数据存储在硬盘上
AOF在每次执行完写命令后将写命令记录下来
一般将两者结合使用。
RDB 是 Redis 默认的持久化方案
优点

  1. Redis 加载 RDB 恢复数据远远快于AOF 的方式。
    缺点
  2. RDB方式频繁执行成本比较高
    AOF方式
    AOF:记录每次写命令,Redis重启后会重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,AOF 是Redis持久化的主流方式。
    优点
  3. AOF可以更好的保护数据不丢失
    缺点
  4. 对于同一份文件AOF比RDB需要更大得存储空间。
  5. 数据恢复比较慢。

RDB和AOF如何选择?

通常来说,应该同时使用两种持久化方案,以保证数据安全。
如果数据能够承受一定时间的数据丢失只使用RDB也可行。
当RDB与AOF两种方式都开启时,Redis会优先使用AOF恢复数据,因为AOF保存的文件比RDB文件更完整

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值