06 2018 档案

摘要:一.字典 1.dictEntry:哈希表节点,保存key及其对应的value,并且每个dictEntry有一个next指针,当发生键冲突时,指向下一个dictEntry 例如:对于redis命令 lpush mylist a b c,redis使用一个dictEntry来保存,其key是mylist 阅读全文
posted @ 2018-06-26 16:11 levy5307 阅读(78) 评论(0) 推荐(0) 编辑
摘要:众所周知,在程序运行出现异常的时候,我们可以选择抛出异常或者返回错误码的方式来进行处理,那么他们两个之间有什么区别?各有什么优缺点?在什么情况下选择抛异常,什么情况下选择返回码呢?下面我们来逐步分析。 1.抛异常 VS 错误码 首先,我们来分析一下抛异常和错误码相比的优缺点: 优点: 1.代码可读性 阅读全文
posted @ 2018-06-26 16:11 levy5307 阅读(730) 评论(0) 推荐(0) 编辑
摘要:一、单机的痛点 当我们使用单台机器对外提供服务时,有如下两个主要问题: 第一、单台机器的性能已经无法满足我们的要求 第二、单台机器容易造成单点故障,导致服务可用性不高 二、分布式系统 分布式就是为了解决这两个问题应运而生的。具体来讲,我们通常可以通过如下方式来解决这两个问题 1.数据分区:将每个数据 阅读全文
posted @ 2018-06-26 16:11 levy5307 阅读(68) 评论(0) 推荐(0) 编辑
摘要:读写分离是指:数据库master负责数据的写入操作,slave则负责数据的读取操作。当向master写入数据时,master通过复制将数据同步到从slave。这样便可以将读DB的访问压力分离出去,用于提升集群的性能。 但是由于主从间数据的复制有延迟,如下场景中则会带来一个问题: 1.向master中 阅读全文
posted @ 2018-06-26 16:10 levy5307 阅读(95) 评论(0) 推荐(0) 编辑