首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
学习
09cakg86qfjwymvm8cd3h1dew
创建于2023-01-06
订阅专栏
记录学习过程中的笔记
等 4 人订阅
共253篇文章
创建于2023-01-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
消息队列的考验:Redis有哪些解决方案
消息队列在存取消息时,必须要满足三个需求,分别是消息保序、处理重复的消息和保证消息可靠性。 # 基于 List 的消息队列解决方案 List 本身就是按先进先出的顺序对数据进行存取的,所以,如果使
如何在Redis中保存时间序列数据
时间序列,这种数据的写入特点很简单,就是插入数据快,这就要求我们选择的数据类型,在进行数据插入时,复杂度要低,尽量不要阻塞。 时间序列数据的“读”,就是查询模式多。 RedisTimeSeries
GEO是什么?还可以定义新的数据类型吗
为了能高效地对经纬度进行比较,Redis 采用了业界广泛使用的 GeoHash 编码方法,这个方法的基本原理就是“二分区间,区间编码”。 当我们要对一组经纬度进行 GeoHash 编码时,我们要先对经
有一亿个keys要统计,应该用哪种集合
# 聚合统计 所谓的聚合统计,就是指统计多个集合元素的聚合结果,包括:统计多个集合的共有元素(交集统计);把两个集合相比,统计其中一个集合独有的元素(差集统计);统计多个集合的所有元素(并集统计)。
“万金油”的String,为什么不好用了
String 类型并不是适用于所有场合的,它有一个明显的短板,就是它保存数据时所消耗的内存空间较多。 三种编码方式: <img src="https://p3-juejin.byteimg.com
切片集群:数据增多了,是该加内存还是加实例
1. 纵向扩展:升级单个 Redis 实例的资源配置,包括增加内存容量、增加磁盘容量、使用更高配置的 CPU。就像下图中,原来的实例内存是 8GB,硬盘是 50GB,纵向扩展后,内存增加到 24GB
哨兵机制:主库挂了,如何不间断服务
哨兵主要负责的就是三个任务:监控、选主(选择主库)和通知。 监控是指哨兵进程在运行时,周期性地给所有的主从库发送 PING 命令,检测它们是否仍然在线运行。如果从库没有在规定时间内响应哨兵的 PIN
数据同步:主从库如何实现数据一致
Redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。读操作:主库、从库都可以接收;写操作:首先到主库执行,然后,主库将写操作同步给从库。 主从库间数据第一次同步
内存快照:宕机后,Redis如何实现快速恢复
内存快照。所谓内存快照,就是指内存中的数据在某一个时刻的状态记录。 和 AOF 相比,RDB 记录的是某一时刻的数据,并不是操作,所以,在做数据恢复时,我们可以直接把 RDB 文件读入内存,很快地完
AOF日志:宕机了,Redis如何避免数据丢失
AOF是写后日志,“写后”的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志。 <img src="https://p6-juejin.byteimg.com/tos-cn-i-k3
高性能IO模型:为什么单线程Redis能那么快
Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。 一方面,Redis 的大部分操作在内存上完成,再加上
数据结构:快速的Redis有哪些慢操作
数据库这么多,为啥 Redis 能有这么突出的表现呢?一方面,这是因为它是内存数据库,所有操作都在内存上完成,内存的访问速度本身就很快。另一方面,这要归功于它的数据结构。这是因为,键值对是按一定的数据
基本架构:一个键值数据库包含什么
Memcached 支持的 value 类型仅为 String 类型,而 Redis 支持的 value 类型包括了 String、哈希表、列表、集合等。Redis 能够在实际业务场景中得到广泛的应用
redis如何学习
Redis 知识全景图都包括什么呢?简单来说,就是“两大维度,三大主线”。 ![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpf
GC实例:Python和Go的内存管理机制是怎样的
# Python python每个对象都会有一个引用计数变量,当引用计数为0时,会被回收。使用了引用计数的地方,就会存在循环引用。 Python 为了解决这个问题,在虚拟机中引入了一个双向链表,把所
Pauseless GC:挑战无暂停的垃圾回收
ZGC 和 G1 有很多相似的地方,它的主体思想也是采用复制活跃对象的方式来回收内存。在回收策略上,它也同样将内存分成若干个区域,回收时也会选择性地先回收部分区域。 ZGC 与 G1 的区别在于:它
G1 GC:分区回收算法说的是什么?
# 分区算法的堆结构 G1 GC 的堆结构: <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7a05531227494e9b
分代算法:基于生命周期的内存管理
# Mark-Sweep 算法 在 Mark 阶段,垃圾回收器遍历活跃对象,将它们标记为存活。在 Sweep 阶段,回收器遍历整个堆,然后将未被标记的区域回收。 Mark 阶段的核心任务是从根引用出
Scavenge:基于copy的垃圾回收算法
基于 copy 的 GC 算法最早是在 1963 年,由 Marvin Minsky 提出来的。这个算法的基本思想是把某个空间里的活跃对象复制到其他空间,把原来的空间全部清空,这就相当于是把活跃的对象
垃圾回收:如何避免内存泄露
GC 算法中最重要的两个角色就是 Mutator 和 Collector。 Mutator 的本意是改变者。因为我们所写的所有 Java 程序,都有可能改变对象的存活和死亡状态,以及它们之间的引用
下一页