<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[denggaogui的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/denggaogui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; denggaogui]]></copyright><item><title><![CDATA[Redis详解（五）高可用集群之水平扩展]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/147199096</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/147199096</guid><author>denggaogui</author><pubDate>Mon, 14 Apr 2025 00:16:14 +0800</pubDate><description><![CDATA[Redis3.0以后的版本虽然有了集群功能，提供了比之前版本的哨兵模式更高的性能与可用性，但是集群的水平扩展却比较麻烦，今天就来带大家看看redis高可用集群如何做水平扩展，原始集群(见下图)由6个节点组成，6个节点分布在三台机器上，采用三主三从的模式。]]></description><category></category></item><item><title><![CDATA[Redis详解（四）高可用集群模式]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/147198324</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/147198324</guid><author>denggaogui</author><pubDate>Sun, 13 Apr 2025 22:54:47 +0800</pubDate><description><![CDATA[redis集群是一个由多个主从节点群组成的分布式服务器群，它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵·也能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式，这种集群模式没有中心节点，可水平扩展，据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式，且集群配置非常简单。]]></description><category></category></item><item><title><![CDATA[Redis详解（三）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146630658</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146630658</guid><author>denggaogui</author><pubDate>Fri, 28 Mar 2025 23:51:06 +0800</pubDate><description><![CDATA[master会在其内存中创建一个复制数据用的缓存队列，缓存最近一段时间的数据，master和它所有的slave都维护了复制的数据下标offset和master的进程id，因此，当网络连接断开后，slave会请求master继续进行未完成的复制，从所记录的数据下标开始。客户端可以一次性发送多个请求而不用等待服务器的响应，待所有命令都发送完后再一次性读取服务的响应，这样可以极大的降低多条命令执行的网络传输开销，管道执行多条命令的网络开销实际上只相当于一次命令执行的网络开销。使用脚本，减少了网络往返时延。]]></description><category></category></item><item><title><![CDATA[Redis详解（二）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146623482</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146623482</guid><author>denggaogui</author><pubDate>Fri, 28 Mar 2025 23:18:42 +0800</pubDate><description><![CDATA[AOF修改内存数据的命令存在一起，都写入新的AOF文件，新的文件一开始不叫appendonly.aof，等到重写完新的AOF文件才会进行改名，覆盖原有的AOF文件，完成新旧两个AOF文件的替换。于是在 Redis 重启的时候，可以先加载 RDB 的内容，然后再重放增量 AOF 日志就可以完全替代之前的 AOF 全量文件重放，因此重启效率大幅得到提升。注意，如果执行带过期时间的set命令，aof文件里记录的是并不是执行的原始命令，而是记录key过期的。）， 这个命令就会被追加到 AOF 文件的末尾。]]></description><category></category></item><item><title><![CDATA[Redis详解（一）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146611642</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146611642</guid><author>denggaogui</author><pubDate>Fri, 28 Mar 2025 22:53:45 +0800</pubDate><description><![CDATA[bind 127.0.0.1（bind绑定的是自己机器网卡的ip，如果有多块网卡可以配多个ip，代表允许客户端通过机器的哪些网卡ip去访问，内网一般可以不配置bind，注释掉即可）2) 用户B关注的人: bSet--> {A, D, E, G, I}4) A和B共同关注: SINTER aSet bSet--> {E}3) 用户C关注的人: cSet-> {A, B, D, G, H)）用于在指定键（key）不存在时设置其值，是一种原子性操作。1) 用户A关注的人: aSet-> {C, E, F}]]></description><category></category></item><item><title><![CDATA[MySQL详解（一）索引底层数据结构与算法]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146355813</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146355813</guid><author>denggaogui</author><pubDate>Tue, 18 Mar 2025 23:46:35 +0800</pubDate><description><![CDATA[索引是帮助MySQL高效获取数据的排好序的数据结构。]]></description><category></category></item><item><title><![CDATA[JVM详解（七）调优工具详解]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146354270</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146354270</guid><author>denggaogui</author><pubDate>Tue, 18 Mar 2025 23:36:05 +0800</pubDate><description><![CDATA[调优工具详解]]></description><category></category></item><item><title><![CDATA[JVM详解（六）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146328899</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146328899</guid><author>denggaogui</author><pubDate>Mon, 17 Mar 2025 23:43:49 +0800</pubDate><description><![CDATA[垃圾收集器G1&ZGC详解]]></description><category></category></item><item><title><![CDATA[JVM详解（五）垃圾收集底层算法实现]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146328517</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146328517</guid><author>denggaogui</author><pubDate>Mon, 17 Mar 2025 23:20:47 +0800</pubDate><description><![CDATA[垃圾收集底层算法实现]]></description><category></category></item><item><title><![CDATA[JVM详解（四）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146327281</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146327281</guid><author>denggaogui</author><pubDate>Mon, 17 Mar 2025 22:23:21 +0800</pubDate><description><![CDATA[垃圾收集器详细介绍]]></description><category></category></item><item><title><![CDATA[JVM详解（三）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146326455</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146326455</guid><author>denggaogui</author><pubDate>Mon, 17 Mar 2025 22:02:16 +0800</pubDate><description><![CDATA[JVM对象创建与内存分配机制深度剖析]]></description><category></category></item><item><title><![CDATA[JVM详解（二）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146325650</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146325650</guid><author>denggaogui</author><pubDate>Mon, 17 Mar 2025 21:21:39 +0800</pubDate><description><![CDATA[tomcat类加载器详解]]></description><category></category></item><item><title><![CDATA[JVM详解（一）]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/146217387</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/146217387</guid><author>denggaogui</author><pubDate>Wed, 12 Mar 2025 23:35:19 +0800</pubDate><description><![CDATA[appClassLoader应用程序类加载器通过findLoadedClass(name)查询已加载的类，判断是否存在，不存在，则调用extClassLoader扩展类加载器加载，不存在则继续调用bootstrapClass引导类加载器加载，不成功，则跳出循环返回由appClassLoader加载。加载某个类时会先委托父加载器寻找目标类，找不到再委托上层父加载器加载，如果所有父加载器在自己的加载类路径下都找不到目标类，则在自己的类加载路径中查找并载入目标类。• 准备：给类的静态变量分配内存，并赋予默认值。]]></description><category></category></item><item><title><![CDATA[js计时事件实现时钟]]></title><link>https://blog.youkuaiyun.com/denggaogui/article/details/52650518</link><guid>https://blog.youkuaiyun.com/denggaogui/article/details/52650518</guid><author>denggaogui</author><pubDate>Sat, 24 Sep 2016 14:41:19 +0800</pubDate><description><![CDATA[无标题文档



//页面加载即运行time()函数
时钟：

function time(){
var date=new Date();//获取当前时间
var year=date.getFullYear();//获取当前年
var month=date.getMonth()+1;//获取当前月份，因JS系统中月份是从0开始，因此要+1
var day=date.getDa]]></description><category></category></item></channel></rss>