Study notes
09
17
替换策略:缓存满了怎么办? 替换策略:缓存满了怎么办?
Redis 缓存使用内存来保存数据,避免业务应用从后端数据库中读取数据,可以提升应用的响应速度。那么,如果我们把所有要访问的数据都放入缓存,是不是一个很好的设计选择呢?其实,这样做的性价比反而不高。 举个例子吧。MySQL 中有 1TB 的
2024-09-17
17
旁路缓存:Redis是如何工作的? 旁路缓存:Redis是如何工作的?
我们知道,Redis 提供了高性能的数据存取功能,所以广泛应用在缓存场景中,既能有效地提升业务应用的响应速度,还可以避免把高并发大压力的请求发送到数据库层。 但是,如果 Redis 做缓存时出现了问题,比如说缓存失效,那么,大量请求就会直接
2024-09-17
16
消息队列的考验:Redis有哪些解决方案? 消息队列的考验:Redis有哪些解决方案?
现在的互联网应用基本上都是采用分布式系统架构进行设计的,而很多分布式系统必备的一个基础软件就是消息队列。 消息队列要能支持组件通信消息的快速读写,而 Redis 本身支持数据的高速访问,正好可以满足消息队列的读写性能需求。不过,除了性能,消
2024-09-16
16
如何在Redis中保存时间序列数据? 如何在Redis中保存时间序列数据?
我们现在做互联网产品的时候,都有这么一个需求:记录用户在网站或者 App 上的点击行为数据,来分析用户行为。这里的数据一般包括用户 ID、行为类型(例如浏览、登录、下单等)、行为发生的时间戳: 1UserID, Type, TimeStam
2024-09-16
16
GEO是什么?还可以定义新的数据类型吗? GEO是什么?还可以定义新的数据类型吗?
在第 2 讲中,我们学习了 Redis 的 5 大基本数据类型:String、List、Hash、Set 和 Sorted Set,它们可以满足大多数的数据存储需求,但是在面对海量数据统计时,它们的内存开销很大,而且对于一些特殊的场景,它们
2024-09-16
16
有一亿个keys要统计,应该用哪种集合? 有一亿个keys要统计,应该用哪种集合?
在 Web 和移动应用的业务场景中,我们经常需要保存这样一种信息:一个 key 对应了一个数据集合。我举几个例子。 手机 App 中的每天的用户登录信息:一天对应一系列用户 ID 或移动设备 ID; 电商网站上商品的用户评论列表:一个商品
2024-09-16
16
“万金油”的String,为什么不好用了? “万金油”的String,为什么不好用了?
从今天开始,我们就要进入“实践篇”了。接下来,我们会用 5 节课的时间学习“数据结构”。我会介绍节省内存开销以及保存和统计海量数据的数据类型及其底层数据结构,还会围绕典型的应用场景(例如地址位置查询、时间序列数据库读写和消息队列存取),跟你
2024-09-16
16
16
哨兵集群:哨兵挂了,主从库还能切换吗? 哨兵集群:哨兵挂了,主从库还能切换吗?
上节课,我们学习了哨兵机制,它可以实现主从库的自动切换。通过部署多个实例,就形成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。 但是,我们还是要考虑一个问题:如果有哨兵实例在运行时发生了故障,主从库还能正常切换吗
2024-09-16
6 / 11