首页 > 其他 > 详细

11 redis

时间:2020-03-30 21:39:28      阅读:63      评论:0      收藏:0      [点我收藏+]

问题

redis的作用是什么

答案

  • redis是一款开源的、高性能的键-值存储,支持字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)和 有序集合(sorted sets)等数据类型。虽说Redis是一种内存数据库,但同时也支持数据的持久化。redis有两种固化方式:RDB(Redis DataBase)和AOF(Apend Only File) 。
  • rdb即快照方式,每隔一段时间,内存中的数据会被存储到硬盘上,当下一次服务启动时,直接恢复最近的快照即可,恢复时间快,但占空间多,这是典型的以空间换时间。
  • aop即命令方式,将服务从开始到当前的所有命令都存储起来,当下一次服务启动时,把这些命令从头到尾执行一遍,恢复时间慢,但占空间少,这是典型的以时间换空间。
  • 缓存穿透是指查询一个一定不存在的数据,redis中找不到的时候,出于容错考虑,系统会再去DB再查找。如果要是有人利用不存在的key频繁查询攻击我们的应用,这就是缓存穿透。解决缓存穿透一般有两种方式,一是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的查询压力;二是直接返回一个空数据,同样也避免了对底层存储系统的查询压力。
  • 缓存雪崩是指在我们设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力过重雪崩。解决缓存雪崩可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件。
  • 缓存击穿是指存在一种非常“热点”的数据,在这个热点数据过期的时候,有大量的并发请求过来,这些请求会击穿redis直到后端DB,大量的这种请求可能会瞬间把后端DB压垮。解决缓存击穿可以使用互斥锁或者让这些数据永不过期。
  • redis集群,为了提升读写能力,保证稳定性,一般会配置redis集群。redis集群会分为主节点[master]和从节点[slave],主节点可读可写,从节点只读,主节点的数据会不断同步到从节点。

11 redis

原文:https://www.cnblogs.com/alichengxuyuan/p/12600887.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!