- 博客(15)
- 资源 (1)
- 收藏
- 关注
原创 Redis源码阅读|主从复制(同步syn)
作用于将从服务器的数据库状态更新至主服务当前所处的数据库状态。:作用于在出数据库状态被修改,导致从数据库状态出现不一致时,让主从服务器的数据重新回到一致状态。
2024-06-11 23:37:25
546
翻译 Redis 6.0发布说明
通过修剪复制积压队列中主节点发送到复制通道的最后的“PING”命令:这样,复制偏移量就不会再超过被晋升为新主节点的从节点的偏移量,使得原主节点可以继续沿用相同的复制历史,只需接收少量的数据差异。然而,在该特性引入后,Redis核心团队很快意识到存在一些问题:这个看似无害的特性出现了多个漏洞,最后一个我们发现的漏洞,在多人共同努力下修复后,我们甚至未能完全理解其根源。在升级你的应用程序从 Redis 5.0 到 6.0 时,Redis 6.0 版本大体上是 5.0 版本的一个超集,因此你应不会遇到大的问题。
2024-05-12 23:01:11
159
翻译 Redis 6.2 发布说明
除非想使用新特性,否则无需升级。: 计划升级服务器,但不紧急。: 存在可能影响部分用户的关键错误。请升级!: 存在影响大多数用户的关键错误。尽快升级!: 发布中包含安全修复。
2024-05-12 17:43:45
201
翻译 Redis 6.0 版本相对于 5.0 版本的变更记录
Redis 6.0 大体上是 5.0 的严格超集,您应该可以毫无问题地将应用程序从 5.0 升级到 6.0。
2024-05-09 23:39:26
428
翻译 Redis 6.2 版本相对于 6.0.9 版本的变更记录
Redis 6.2 大体上是 6.0 的严格超集,您应该可以毫无问题地将应用程序从 6.0 升级到 6.2。然而,上述列出了一些小型的行为变更,请确保这些变更不会对您产生严重影响。
2024-05-09 23:18:09
652
原创 Redis源码阅读|AOF持久化过程
redis命令执行的时候会根据是否有AOF或主从复制的需要调用函数,这个判断在redis命令执行核心函数call()函数便是与AOF持久化的关键函数了。:AOF持久化的相关实现主要集中在aof.c文件中。这个文件包含了AOF的工作机制,包括命令的写入、文件的同步、AOF重写等功能的实现。
2024-05-07 22:54:41
428
1
原创 Java并发编程|用join和CountDownLatch、CyclicBarrier实现主线程等待子线程
在redis运维开发中,有一个功能是:获取redis集群某一天内多个实例的日志,并将这些日志汇总后按时间顺序展示。在上述需求中,“获取redis集群在一天内多个实例的日志”这一步骤是比较耗时的,需要将远程服务器上的日志读取到内存中。但从每个redis实例中获取日志的动作都是独立的,可以考虑使用多线程,每个线程读取一个redis实例的日志。等所有线程完成日志读取之后再汇总和排序。。
2024-01-21 18:49:02
391
原创 SDS(Simple Dynamic String)简单动态字符串
比起C字符串,SDS具有以下优点1)常数复杂度获取字符串长度。2)杜绝缓冲区溢出。3)减少修改字符串长度时所需的内存重分配次数。4)二进制安全。5)兼容部分C字符串函数。
2023-11-26 17:34:17
294
1
原创 Java并发编程|上下文切换
CPU让多个线程并发执行的原理是通过给每个线程分配,获得时间片的线程得到了执行。但是时间片非常短(一般是几十毫秒),所以CPU通过不断地切换线程执行,让我们感觉像是多个线程同时在执行。
2023-10-08 17:58:46
77
1
原创 Java序列化
最近遇到了一位同事咨询:Redis在存储数据的时候直接写入json字符串和序列化byte之后写入,产生的aof文件有没有大小差距?这个问题咨询导师获得的答案是:两者产生的aof文件大小是一样的。虽然知道了是因为在数据传输的时候字符会被转为byte数组再进行传输,但对这个过程是什么时候发生的,为什么要转换为byte进行传输还是存在疑问。周末对序列化进行了学习和总结。
2023-09-17 13:46:36
67
1
原创 Java 继承与多态
Java中就是子类继承父类的特征和行为,使得子类拥有和父类相同的实例变量和方法。变量可以理解成对象已知的属性,方法相当于对象可以执行的动作。
2023-09-03 21:13:33
49
原创 Redis key设计规范
规范说明设计合理的key中value的大小,推荐小于10KB过大时的value会引起数据倾斜、热点key、实例流量、或者cpu性能被占满等问题。设计合理的key名称和长度key名称:1)使用可读的字符串作为key名,使用key名拼接库、表、字段名推荐使用英文冒号“:”分割,如project:user:001;2)在能完整描述业务的前提下,尽量简化key长度,如userName简化为u;3)大括号{}为redis的hash tag语义,如果是集群架构,key名称需要正确地使用大括
2023-09-03 20:13:00
275
原创 Redis对象
Redis的每个对象都是使用redisObject表示可以使用***object encoding [key] ***命令查看键的值对应得编码。
2023-09-03 18:04:36
77
原创 Java中的private、default、protected、public关键字
private、default、protected、public是Java中的访问限定修饰符,用于限制java类、方法和成员变量可见范围。被public修饰的类、变量和方法可以被所有的类访问。适用于一些对外提供的方法和类。如果一个类没有使用任何访问范围修饰符,相当于使用了default修饰符,这个类只能被同一包下的类访问。适用于一些供本包访问设计的类和方法。protected是用来保护子类的,子类可以访问用它修饰的成员,相当于传递给子类的一种继承的东西。另外,同包下的其他类也可以访问它修饰的变量。
2023-09-02 13:04:52
819
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人