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

Redis的常用功能

# 一.数据类型

1.5种基础数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。

2.3种特殊数据类型:HyperLogLog(基数统计)、Bitmap (位图)、Geospatial (地理位置)。

# 二.使用注意

1.缓存穿透:查询一个不存在的数据,mysql查询不到数据也不会直接写入缓存,就会导致每次请求都查数据库,可能导致DB挂掉,这种情况大概率是遭到了攻击。

2.缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。

3.缓存雪崩:同一时段大量的缓存key同时失效(设置缓存时采用了相同的过期时间 所导致)或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。与缓存击穿的区别:雪崩是很多key,击穿是某一个key缓存。

4.解决方案:穿透无中生有key,布隆过滤null隔离。缓存击穿过期key,锁与非期解难题。雪崩大量过期key,过期时间要随机。面试必考三兄弟,可用限流来保底。

# 三.双写一致性

1.先删除缓存,还是先修改数据库,不同业务场景,选择不同方案。

2.强一致性:redission读写锁,读锁readLock,加锁之后,其他线程可以共享读操作;独占锁writeLock,加锁之后,阻塞其他线程读写操作。注意:setNx key value,当key不存在时,设置为value并返回1,当key存在时,返回的是0。

3.延时双删策略:先把缓存中的数据删除、然后更新数据库、最后再延时删除缓存中的数据,其中这个延时多久不太好确定,需要根据业务场景具体分析;在延时的过程中可能会出现脏数据,不能保证强一致性。

4.延时一致性:使用MQ中间件,更新数据之后,通知缓存删除;利用阿里canal中间件,不需要修改业务代码,伪装为mysql的一个从节点,canal通过读取binlog数据更新缓存。

# 四.持久化

1.RDB:是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例岩机恢复数据的时候,方便从RDB的快照文件中恢复数据。

2.AOF:追加文件,当redis操作写命令的时候,都会存储到这个文件中(一般存储在redis服务器的工作目录下,文件名为 appendonly.aof),当redis实例岩机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据。

# 五.redis数据过期策略

1.惰性删除:设置key的过期时间后,不去管它,当需要该key时,再检查其是否过期,如果过期了,就删除,反之返回该key。

2.定期删除:每隔一段时间,对一些key进行检查,删除里面过期的key(从数据库中取出一定数量的随机key进行检查,并删除其中的过期key)。

# 六.redis数据淘汰策略

1.noeviction: 不淘汰任何key,但是内存满时不允许写入新数据,默认就是这种策略

2.volatile-ttl: 对设置了TTL的key,比较key的剩余TTL值,TTL越小越先被淘汰

3.allkeys-random:对全体key ,随机进行淘汰

4.volatile-random:对设置了TTL的key ,随机进行淘汰

5.allkeys-lru: 对全体key,基于LRU算法进行淘汰

6.volatile-lru: 对设置了TTL的key,基于LRU算法进行淘汰

7.allkeys-lfu: 对全体key,基于LFU算法进行淘汰

8.volatile-lfu: 对设置了TTL的key,基于LFU算法进行淘汰

LRU(Least Recently Used)最近最少使用。用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高。

LFU(Least Frequently Used)最少频率使用。会统计每个key的访问频率,值越小淘汰优先级越高

http://www.jsqmd.com/news/471556/

相关文章:

  • 响应“双碳”战略:2026西北五大合规再生资源回收服务商榜单发布 - 深度智识库
  • 电感/变压器/二极管的降额使用案例实战B01
  • 溪水潺潺,峰林相望:这才是张家界的慢时光
  • 第4天 蜜罐堡垒机api
  • MyPal3(8)
  • 探索Qt + OpenCV视觉通用框架:从原理到代码实践
  • 基于深度置信网络DBN的数据分类预测
  • 穿梭车货架性价比高的品牌有哪些,苏弘智能仓储在列吗 - 工业品牌热点
  • 集成房屋来图定制费用多少,宁波靠谱的实力厂商有哪些 - myqiye
  • 脉振方波高频注入法与 SMO 观测器模型复合控制:探索电机控制新境界
  • 免编程拖拽C#源码:工控软件开发的新启发
  • 为什么现在需要卸载OpenClaw:它对你的系统安全做了什么?
  • 杉德斯玛特卡回收方法对比:哪家最安全靠谱? - 团团收购物卡回收
  • 计算机毕业设计springboot电子书包之用户与权限管理组件 基于SpringBoot的智慧校园电子书包身份认证与访问控制平台 基于SpringBoot的数字化教学环境用户权限管控与资源保护系统
  • 2026年显微镜价格大汇总,科研用显微镜性价比高的品牌推荐 - 工业品网
  • 【会员专享数据】2025年全国省份点位数据(shp格式\excel格式)
  • 2026采购指南:如何根据您的工业场景选择最合适的防爆巡检机器人品牌? - 品牌推荐大师
  • 2026功能实用智能客服机器人推荐,实用性强的人工智能客服优选 - 品牌2026
  • Android中横屏适配以及各个屏幕之间的适配
  • 计算机毕业设计springboot社区养老服务系统的设计与开发 基于SpringBoot的社区智慧养老服务平台的设计与实现 基于Java的社区居家养老综合服务管理系统的设计与开发
  • 2026年口碑不错的DLC涂层机生产厂家,性价比高的有哪些品牌 - 工业设备
  • FireRedASR-AED-L WebUI界面自定义与功能扩展效果展示
  • 2026 年全国透光混凝土优质厂商盘点 全场景项目选型实用参考指南 - 深度智识库
  • OpenClaw 腾讯云 (大龙虾AI)保姆级教程
  • 基于分布式优化的多产消者非合作博弈能量共享:MATLAB 实现探索
  • MySQL中的视图
  • 2026年通风系统核心部件推荐:从风阀看西北市场的“硬实力”制造商 - 深度智识库
  • ARM64 多级页表映射机制与Linux内核实现剖析
  • 说说华南地区靠谱的DLC涂层机供应商推荐,哪家性价比高 - 工业品网
  • AutoGen Studio区块链应用:智能合约审核智能体