前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Redis学习

Redis学习

作者头像
晓果冻
发布于 2022-09-08 06:02:27
发布于 2022-09-08 06:02:27
27800
代码可运行
举报
运行总次数:0
代码可运行

Redis学习

应用场景
  • Token令牌的生成
  • 短信验证码的code
  • 可以实现缓存数据的查询
  • 帮助实现计数器
  • 分布式锁
  • 延迟操作(对key做时间监听,多长时间过期)
  • 分布式消息中间件
Redis数据类型
String类型
  • Redis最基本的类型,一个key对应一个value,String类型时二进制安全的。比如jpg图片或者序列化的对象,一个键最大能存储512MB
Hash类型
  • 可以将Redis中的Hash类型看成具有<key,<key1,value>>,其中同一个key可以有多个不同key值的<key1,value>,所以该类型非常适合于存储值对象的信息。如Username、Password和Age等。如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间。
List类型
  • Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
集合(Set)
  • Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。 Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。
有序集合(sorted set)
  • Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。
MySQLRedis一致性问题
  • 直接清除Redis的缓存,重新读取数据库
  • 使用mq异步订阅mysql binlog实现增量同步
  • 使用alibabacanal
缓存击穿
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
热点key过期(或者没有被缓存的)
数据库有 大量的并发redis没有缓存 
过缓存穿透
解决方案
  • 对服务接口api实现限流、用户授权、黑名单和白名单拦截;
  • 从缓存和数据库都查询不到结果的话,一样将数据库空值结果缓存到redis中;
  • 设置30s有小气避免使用同一个id对对数据库攻击;
  • 布隆过滤器;
缓存雪崩

参考资料:https://mp.weixin.qq.com/s/bjKSM7l8upeFcaxNlYmSyA

原课堂笔记地址:http://file.chenmx.net/s/0wTG

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis学习
    • 应用场景
    • Redis数据类型
      • MySQL与Redis一致性问题
      • 缓存击穿
      • 过缓存穿透
      • 缓存雪崩
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档