摘要: 首先看下serverCron中,服务器每次循环执行的时候,都会刷新server.lrulock。 使用的方法是getLRUClock,LRU_CLOCK_RESOLUTION代表LRU算法的精度,即一个LRU的单位是多长时间。LRU_CLOCK_MAX代表逻辑时钟的最大位数,类似现实中的表盘,划分了 阅读全文
posted @ 2018-03-02 18:35 打败大魔王 阅读(2415) 评论(0) 推荐(0)
摘要: 发请求,接收接送,并解析 阅读全文
posted @ 2018-01-16 18:02 打败大魔王 阅读(2261) 评论(0) 推荐(0)
摘要: 客户端: 阅读全文
posted @ 2018-01-15 20:21 打败大魔王 阅读(471) 评论(0) 推荐(0)
摘要: 集群启动: loadDataBase(); cnxnFactory.start(); //网络通信交互 startLeaderElection();//启动选举类 super.start(); case LOOKING: new ReadOnlyZooKeeperServer() //选举期间启用只 阅读全文
posted @ 2018-01-11 12:01 打败大魔王 阅读(268) 评论(0) 推荐(0)
摘要: 链接:https://www.zhihu.com/question/20182967/answer/76631201著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 COOKIE由于存储在客户端,有被随意篡改的风险,所以其实服务器判断用户登陆状态,一般都是用SESSION的... 阅读全文
posted @ 2017-08-03 18:55 打败大魔王 阅读(2424) 评论(0) 推荐(1)
摘要: 跳跃表是一种随机化的数据结构,在查找、插入和删除这些字典操作上,其效率可比拟于平衡二叉树(如红黑树),大多数操作只需要O(log n)平均时间,但它的代码以及原理更简单。 和链表、字典等数据结构被广泛地应用在Redis内部不同,Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群 阅读全文
posted @ 2017-08-01 09:55 打败大魔王 阅读(1470) 评论(1) 推荐(0)
摘要: 本文不讲hash算法,而主要是分析redis中的dict数据结构的特性--分步rehash。 首先看下数据结构:dict代表数据字典,每个数据字典有两个哈希表dictht,哈希表采用链式存储。 增加新节点函数,调用dictAddRaw,先增加节点的键,而不赋值,只有增加成功后才赋值。每次增加新节点, 阅读全文
posted @ 2017-05-11 00:21 打败大魔王 阅读(633) 评论(0) 推荐(0)
摘要: 首先的疑问,已经有了二叉平衡树,为什么又有红黑树?(前提是要理解平衡树) 引用知乎上的回答 1. 如果插入一个node引起了树的不平衡,AVL和RB-Tree都是最多只需要2次旋转操作,即两者都是O(1);但是在删除node引起树的不平衡时,最坏情况下,AVL需要维护从被删node到root这条路径 阅读全文
posted @ 2017-05-09 23:17 打败大魔王 阅读(345) 评论(0) 推荐(0)
摘要: 在绘制图形的过程中,顶点可能会重复。比如两个三角形组成了四边形,那么,必然有两个点是重复的。因此采用索引的方式,四个点即可描述四边形。 运行结果图片如下: 阅读全文
posted @ 2017-03-19 21:52 打败大魔王 阅读(1560) 评论(0) 推荐(0)
摘要: 话说程序员有三大浪漫,操作系统、编译原理和计算机图形学。这里称作计算机图形学,而不是图形学,是为了避免歧义。 opengl是干什么的,可以自行google。这里仅作为一个学习里程中的记录。不作为权威指南。 入门教程参见,https://learnopengl-cn.readthedocs.io/zh 阅读全文
posted @ 2017-03-19 21:27 打败大魔王 阅读(4348) 评论(0) 推荐(0)