Redis基本数据类型

1、字符串对象String;2、列表对象list;3、哈希对象hash;4、集合对象set;5、有序集合对象

Redis 持久化机制

缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

Memcache与Redis的区别都有哪些?

单线程的redis为什么这么快

为何Redis6.0之后又改用多线程呢?

Redis使用多线程并非是完全摒弃单线程,redis还是使用单线程模型来处理客户端的请求,只是使用多线程来处理数据的读写和协议解析,执行命令还是使用的单线程。这样做的目的是因为redis的性能瓶颈在于网络IO而非CPU,使用多线程能提升IO读写的效率,从而整体提高redis的性能。

知道什么是热key吗?热key问题怎么解决?

https://www.zhihu.com/collection/366256676
所谓热key问题就是,突然有几十万的请求去访问redis上的某个特定key,那么这样会造成流量过于集中,达到物理网卡上限,从而导致这台redis的服务器宕机引发雪崩。
image.png
针对热key的解决方案:

  1. 提前把热key打散到不同的服务器,降低压力
  2. 加入二级缓存,提前加载热key数据到内存中,如果redis宕机,走内存查询

    redis的数据类型,以及每种数据类型的使用场景

    Redis 内部结构

    redis的过期策略以及内存淘汰机制

    LRU算法:其核心思想是:如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉。
    ttl:挑选将要过期的数据淘汰

    Redis 为什么是单线程的

    Redis 集群方案应该怎么做?都有哪些方案?

    有没有尝试进行多机redis 的部署?如何保证数据一致的?

    对于大量的请求怎么样处理

    1. redis是一个单线程程序,也就说同一时刻它只能处理一个客户端请求;
    2. redis是通过IO多路复用(selectepoll, kqueue,依据不同的平台,采取不同的实现)来处理多个客户端请求的

    Redis 常见性能问题和解决方案?

    ```
  3. (1) Master 最好不要做任何持久化工作,如 RDB 内存快照和 AOF 日志文件
  4. (2) 如果数据比较重要,某个 Slave 开启 AOF 备份数据,策略设置为每秒同步一次
  5. (3) 为了主从复制的速度和连接的稳定性, Master 和 Slave 最好在同一个局域网内
  6. (4) 尽量避免在压力很大的主库上增加从库
  7. (5) 主从复制不要用图状结构,用单向链表结构更为稳定,即: Master <- Slave1 <- Slave2 <-
  8. Slave3… ```

    为什么Redis的操作是原子性的,怎么保证原子性的?

    Redis事务

    Redis实现分布式锁