Redis常见问题描述

1 Redis持久化机制:Redis是一个支持持久化的内存数据库,通过持久化机制把内存中的数据同步到硬盘文件来保证数据持久化。当Redis重启后通过把硬盘文件重新加载到内存,就能达到恢复数据的目的。

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

  缓存雪崩:由于原有缓存失效,新缓存未到期间,所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。从而形成一系列连锁反应,造成整个系统崩溃。
    解决办法:失效时间分散;加锁,避免大量的并发请求落到底层存储系统上。
  缓存穿透:绕过缓存直接查数据库,这也是经常提的缓存命中率问题。
  缓存预热:系统上线后,将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据
库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据。
  缓存更新:自定义的缓存淘汰,常见的策略有两种:
  (1)定时去清理过期的缓存;
  (2)当有用户请求过来时,再判断这个请求所用到的缓存是否过期,过期的话就去底层系统得到新数据并更新缓存。两者各有优劣。
  缓存降级:对于不重要的缓存数据,可以采取服务降级策略,例如一个比较常见的做法就是,Redis出现问题,不去数据库查询,而是直接返回默认值给用户。
 
3 单线程的redis为什么这么快
  (1)纯内存操作
  (2)单线程操作,避免了频繁的上下文切换
  (3)采用了非阻塞I/O机制
 
4 Redis事务功能是通过MULTI、EXEC、DISCARD和WATCH 四个原语实现的
  Redis会将一个事务中的所有命令序列化,然后按顺序执行。
posted @ 2023-03-30 11:26  sun-sailing  阅读(18)  评论(0编辑  收藏  举报