摘要:
上回在《Redis 数据过期了会被立马删除么?》说到如果过期的数据太多,定时删除无法删除完全(每次删除完过期的 key 还是超过 25%),同时这些 key 再也不会被客户端请求,就无法走惰性删除,内存被打满会怎样? 答案是走内存淘汰机制。 故事从一个叫 Redis 帝国的三公九卿官职说起…… 在 阅读全文
摘要:
在移动互联网的业务场景中,数据量很大,我们需要保存这样的信息:一个 key 关联了一个数据集合,同时对这个数据集合做统计。 比如: 统计一个 APP 的日活、月活数; 统计一个页面的每天被多少个不同账户访问量(Unique Visitor,UV)); 统计用户每天搜索不同词条的个数; 统计注册 IP 阅读全文
摘要:
在Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?中我们说到可以使用布隆过滤器避免「缓存穿透」。 码哥,布隆过滤器还能在哪些场景使用呀? 比如我们使用「码哥跳动」开发的「明日头条」APP 看新闻,如何做到每次推荐给该用户的内容不会重复,过滤已经看过的内容呢? 你会说我们只要记录了每个用户看 阅读全文
摘要:
原始数据存储在 DB 中(如 MySQL、Hbase 等),但 DB 的读写性能低、延迟高。 比如 MySQL 在 4 核 8G 上的 TPS = 5000,QPS = 10000 左右,读写平均耗时 10~100 ms。 用 Redis 作为缓存系统正好可以弥补 DB 的不足,「码哥」在自己的 M 阅读全文
摘要:
上回说到使用 Redis 的 List 实现消息队列有很多局限性,比如: 没有良好的 ACK 机制; 没有 ConsumerGroup 消费组概念; 消息堆积。 List 是线性结构,想要查询指定数据需要遍历整个列表; Stream 是 Redis 5.0 引入的一种专门为消息队列设计的数据类型,S 阅读全文
摘要:
Redis 通常是我们业务系统中一个重要的组件,比如:缓存、账号登录信息、排行榜等。 一旦 Redis 请求延迟增加,可能就会导致业务系统“雪崩”。 我在单身红娘婚恋类型互联网公司工作,在双十一推出下单就送女朋友的活动。 谁曾想,凌晨 12 点之后,用户量暴增,出现了一个技术故障,用户无法下单,当时 阅读全文
摘要:
2022-01 月,我的公众号关注人数 20000+。 虽然是个很小的数据,但对我而言已经是一个阶段性的里程碑。今天跟大家来聊下公众号写作给我带来的五味杂陈。 个人拙见,不喜勿喷。 如何下手写一篇文章? 写公众号挣了多少钱? 文章排版有什么技巧? 有什么写作技巧么? 文章配图这么好看怎么做到的? 关 阅读全文
摘要:
分布式系统中必备的一个中间件就是消息队列,通过消息队列我们能对服务间进行异步解耦、流量消峰、实现最终一致性。 目前市面上已经有 RabbitMQ、RochetMQ、ActiveMQ、Kafka等,有人会问:“Redis 适合做消息队列么?” 在回答这个问题之前,我们先从本质思考: 消息队列提供了什么 阅读全文
摘要:
腾讯面试官:「数据库事务机制了解么?」 「内心独白:小意思,不就 ACID 嘛,转眼一想,我面试的可是技术专家,不会这么简单的问题吧」 程许远:「balabala…… 极其自信且从容淡定的说了一通。」 腾讯面试官:「Redis 的事务了解么?它的事务机制能实现 ACID 属性么?」 程许远:「挠头, 阅读全文
摘要:
码哥,String 还能优化啥?你是不是框我? 莫慌,今天给大家见识一下不一样的 String,从根上拿捏直达 G 点。 并且码哥分享一个例子:通过性能调优我们能实现百兆内存轻松存储几十 G 数据。 String对象是我们每天都「摸」的对象类型,但是她的性能问题我们却总是忽略。 爱她,不能只会简单一 阅读全文