Redis

1、Redis使用场景

  业务系统上的数据库访问中,读多写少时(若读较少,则不需要使用Redis作为缓存),在高并发系统中,使用NoSQL技术,将热点数据放入内存中,以减轻数据库的压力——提升数据访问速度。

  Redis的数据缓存能力解决了访问性能问题和并发问题。 除此之外,Redis实现了分布式锁。 

2、为什么实用Redis?Redis的特点?

  Redis基于内存,常用作缓存,存储形式是key-value对。

  java有Map,不可以吗?

  不可以。map实现的是本地缓存,声明周期随jvm的结束而结束;并且在多实例的情况下,每个jvm都需要各自保存一份缓存,缓存不具有一致性。redis实现的是分布式缓存,多个实例可以共享一份缓存数据。Redis可以拿几十个G作缓存。Redis可以持久化缓存数据,重启后可以恢复使用。

  Redis可以持久化吗?

  可以。可以将缓存数据保存在硬盘里,redis重启后可以重新恢复。

3、为什么用缓存?

  数据库的读写需要经过磁盘,速度较慢。有了缓存,直接访问存储在内存中的数据,提高了访问速度,增加了并发性。

4、Redis的对象?

  Redis的key一定是字符串。value可以是String、list有序列表、set无序集合、hash、sortset(有序集合)等、

5、Redis默认几个数据库?

  16个。 0 - 15.

6、key的过期时间

  

7、Redis是单线程的,为什么会那么快?

  纯内存操作、核心是基于非阻塞的IO多路复用机制、单线程避免了多线程的上下文频繁切换

8、Redis主从复制

  若请求过多,一台redis服务器处理不来,则需要主从复制。

  好处:从服务器负责读,主服务器负责写,读写分离;高可用,一台从挂了,其他服务器仍可接收读,不影响服务;处理更多的并发

  特点;主、从服务器的数据是一致的。

  复制功能的具体实现?

  分为两步:1、同步。将从服务器的数据库状态更新为主服务器的数据库状态。

       2、命令传播。主服务器写了数据,导致主从服务器数据不一致,通过命令传播,将主服务器执行的写命令传给从,让从业也执行。

  如果主服务器挂了?

  Redis提供了哨兵机制,将从服务器升级为主服务器。

  假如旧的服务器又连上?

  从新连上的变为从服务器。

9、哨兵机制

  用于实现Redis的高可用性。

10、什么是缓存雪崩?

  缓存数据在某段时间内同时失效,导致请求直接访问了数据库。

  如何解决缓存雪崩?

  在缓存的时候给过期时间加上一个随机值,大幅减少缓存在同一时间失效的可能性。

  若真的发生了,怎么办?

  设置本地缓存 + 限流,保证服务能正常工作。

  发生之后,怎么办? 

  redis重新后,自动从磁盘上加载数据,快速恢复缓存数据。

11、什么是缓存穿透?

  请求的数据在缓存中大量不命中,导致请求访问了数据库。

  如何解决?

  过滤掉不合法的请求参数;当从数据库查询不到时候,将一空对象设置到缓存,并设置一个较短的过期时间;

12、缓存与数据库双写一致

  

 

posted @ 2020-04-06 17:08  海绵爱上星  阅读(117)  评论(0编辑  收藏  举报