当前位置: 首页 > article >正文

reids基础

数据结构类型

String

setnx        //设置key不存在,则添加成功

setex  name 10 jack        // key 10s失效,自动删除

hash

hset

hget

list

按添加数据排序

lpush        //左侧插入

rpush         //右侧插入

set

不重复

sadd        //添加

srem         //移除

zset(SortedSet)

可排序、元素不重复

zadd stu 60 jack        //

缓存

更新策略:

  1. 内存淘汰:内存不足时自动淘汰;
  2. 超时剔除:添加TTL;
  3. 主动更新:

业务场景:

  • 低一致性需求
  • 高一致性需求

持久化

RDB

AOF

面试题

缓存穿透

原因:请求的数据在缓存和数据库都不存在,这样缓存永远不会生效。

解决方案:

  1. 缓存空对象(null):实现简单,维护方便,但是会有额外内存消耗
  2. 布隆过滤:在redis前面加布隆过滤器,不存在直接拒绝
  3. ...

缓存雪崩

原因:同一时段大量的缓存key同时失效或者redis宕机,大量的请求到数据库。

解决方案:

  1. 给不同的key的TTL添加随机值
  2. redis集群提高服务的高可用
  3. 业务添加多级缓存

缓存击穿

原因:(热点key问题)高并发访问并且缓存重建业务较复杂的key突然失效。

解决方案:

  1. 互斥锁
  2. 逻辑过期:不过期的key,在没有跟新缓存前先返回旧数据;


http://www.kler.cn/a/404943.html

相关文章:

  • SSRF漏洞利用
  • 【Qt】QComboBox设置默认显示为空
  • React基础知识一
  • C07.L07.STL之映射.应用2.统计数字
  • (二)Ubuntu22.04+Stable-Diffusion-webui AI绘画 中英双语插件安装
  • C语言菜鸟入门·关键字·void的用法
  • 软件测试最全单元测试之mock使用_maven项目mock单元测试,2024年最新关于软件测试性能优化的几点建议
  • Scala中Arry
  • w048基于web的校园资料分享平台
  • 深度学习之FCN
  • 241117学习日志——[CSDIY] [ByteDance] 后端训练营 [05]
  • Pgsql 时间减法操作
  • QT中QString类的各种使用
  • [NewStarCTF 2023]include 0。0--详细解析
  • Rust学习(六):函数式编程
  • 【C++习题】6.字符串相加
  • Java 岗面试八股文及答案整理(2024最新版)
  • 【Android】Android侧如何抓取日志?
  • WPF应用程序的生命周期-笔记
  • IC脚本之perl
  • 鸿蒙NEXT开发案例:简体繁体转换器
  • 事务详解(特性)
  • GPU 硬件原理架构(一)
  • 搭建MC服务器
  • uniapp 相关的swiper的一些注意事项
  • C++设计模式行为模式———迭代器模式