美文网首页
Redis杂项

Redis杂项

作者: 风雪_夜归人 | 来源:发表于2023-11-10 13:23 被阅读0次

常见面试题

Redis支持的数据类型?

Redis有哪几种数据淘汰策略?

noeviction :不删除策略,达到最大内存限制时,如果需要更多内存,直接返回错误信息。大多数命令都会导致占用更多的内存
2.allkeys-lru:所有key通用;优先删除最近最少使用(less recently used,LRU)的key
3.volatile-lru:优先删除最近最少使用(less recently used,LRU)的key(限于会过期的key)
4.allkeys-random:所有key通用;随机删除一部分key
5.volatile-random:随机删除一部分key(限于会过期的key)
6.volatile-ttl:优先删除剩余时间(time to live,TTL)短的key(限于会过期的key)

什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么?

  1. RDB + AOF
  • Redis有哪些架构模式?讲讲各自的特点?
    1.主从 + 哨兵

使用过Redis分布式锁吗?它是如何实现的?

1.SETNX

使用Redis做异步队列吗?是你怎么用的?有什么缺点?

1.lpush:从左侧存入数据 -》 栈结构 lpop从最外侧弹出
2.rpush:从右侧存入数据 -》队列接口 lpop从最外侧弹出

什么是缓存穿透?如何避免?什么是缓存雪崩?如何避免?

缓存穿透
  • 访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉
解决方案:
  • 采用布隆过滤器,使用一个足够大的bigmap,用于存储可能访问的key,不存在的key直接被过滤。
  • 缓存数据库都查不到的话,把为空的结果写入DB一份
缓存雪崩
  • 大量的key设置了相同的过期时间,导致缓存在同一时刻全部失效,造成DB请求量过大,导致崩溃
解决方案:
  • 给缓存设置过期时间的基础上,再加上个随机时间,使每个key过期时间错开。
缓存击穿
  • 一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增
解决方案
  • 在访问key之前,采用setnx(set if not exists)来设置另一个短期key来锁住当前key的访问,访问结束再删除该短期key

相关文章

  • Redis 基础特性讲解

    1.Redis基础杂项小节 1.是什么 Redis: Remote Dictionary Server(远程字典服...

  • Redis入门

    redis杂项知识 key的常用命令 List常用命令

  • springmvc+spring+jdbc整合

    简单实例 实例2 杂项1 杂项2 杂项3 实例4

  • redis 02 启动后杂项知识

    redis性能检测 其他命令 select n:切换数据库redis默认有16个数据库,下标从0开始DBSIZE:...

  • Redis启动后杂项基础知识

    Redis启动后杂项基础知识 1. 单进程 单进程模型来处理客户端的请求。对读写等事件的响应是通过对epoll函数...

  • Shell脚本之杂项

    title: Shell脚本之杂项tags: shell编程, 杂项 记录一些学到的shell脚本里面的一些杂项(...

  • Linux驱动编程——misc设备驱动框架

    Linux驱动编程——misc设备驱动框架 主要概念: misc:杂项设备杂项设备是字符设备的一种,杂项设备可以自...

  • css 杂项

    css杂项

  • 杂项

    在php中self与$this的分别 在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成cons...

  • 杂项

    最难熬的是有烦恼却不能跟任何人倾诉的时候, 也许那个时候正是思想上懵懂和成熟交替之际。 烟吸到肺里已经不是当初的感...

网友评论

      本文标题:Redis杂项

      本文链接:https://www.haomeiwen.com/subject/npeaidtx.html