摘要: 1、数据结构 Memccached 只支持key-value类型 Reids 支持 String hash list set sortedSet,内部都是通过ReidsObject来表示 2、内存管理 Memcached 使用的是Slab allocation机制,将内存划分为不同大小的块,在操作时 阅读全文
posted @ 2018-04-04 17:02 lion_eagle 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 主从复制: Redis支持一主多从的主从复制架构。一个Master示例负责所有的写请求,然后将写操作同步到所有的slave。 可以实现读写分离。 可以实现高可用,但是不是强一致性 借助Redis Sentinel实现高可用,当Master crash后,能自动将一个Slave晋升为Master。 集 阅读全文
posted @ 2018-04-04 16:16 lion_eagle 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Redis 一般用来做缓存服务,有时如果需要将数据持久化,目前也提供两种方式来持久化Redis数据。 持久化的优点: 服务挂掉后能从持久化的文件中快速恢复 缺点: 会有性能上的损失 RDB 从Redis主进程fork一个子进程来完成同步,Redis会定期保存数据快照到一个rbd文件中,并在启动时自动 阅读全文
posted @ 2018-04-04 15:58 lion_eagle 阅读(133) 评论(0) 推荐(0) 编辑
摘要: Redis 事务实现需要用到 MULTI 和 EXEC 两个命令,事务开始先发送MULTI命令,然后执行事务中处理的命令,最后发送EXEC命令表示事务结束。 Redis 事务不支持回滚操作 与事务相关的命令还有WATCH 和 UNWATCH,如果WATCH了某个键,那么再执行事务如果修改该键,那么后 阅读全文
posted @ 2018-04-04 15:42 lion_eagle 阅读(1177) 评论(0) 推荐(0) 编辑
摘要: 分布式事务大多遵循BASE思想,牺牲部分可用性来达到一致性(最终一致性) 两阶段提交(2PC) 各个分布式业务都有 prepare - commit 两个阶段,需要事务协调器(中心) prepare阶段,需要每个涉及到事务的节点都预提交数据,并反映是否可以提交。 commit阶段,事务协调器根据各个 阅读全文
posted @ 2018-04-04 14:38 lion_eagle 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 相对于ACID的约束: 分布式领域提出了CAP理论: Consistency(一致性),数据一致更新,所有分布式节点数据变动是一致的(可以是最终一致) Availability(可用性),好的响应性能 Partion tolerance(分区容忍性),节点变化的容错性,服务的可靠性 分布式系统只能同 阅读全文
posted @ 2018-04-04 10:57 lion_eagle 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 事务是定义一系列操作在逻辑上可以看成一个完整的操作,具有ACID特性; Atomicity(原子性) 要求事务中所有的操作要么全部完成,要么全部没有发生,如果部分操作失败,则整个事务操作都会失败。 Consistency(一致性) 要求事务中的操作,符合容器(如:数据库)的各种规则,保证数据是合法、 阅读全文
posted @ 2018-04-03 11:55 lion_eagle 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 上一篇讲完了容器的初始化,下面会讲容器的启动 1、入口依然是Catalina的start方法中,会调用StandardServer的start方法 2、StandardServer调用StandardService的start方法 3、StandardService的start方法主要是调用Engi 阅读全文
posted @ 2018-03-30 16:23 lion_eagle 阅读(1103) 评论(0) 推荐(0) 编辑
摘要: Tomcat 启动方式一般都是直接调用bin下的start.*文件直接执行,而start.*文件都会调用catalina.*文件,catalina文件会直接执行bootstrap文件(java): 1、bootstrap的main方法为启动入口,首先会反射调用catalina,初始化类加载器 2、调 阅读全文
posted @ 2018-03-29 19:35 lion_eagle 阅读(1191) 评论(1) 推荐(1) 编辑
摘要: 今天看到一篇InfoQ的文章<<拖累开发团队效率的困局与解决之道>>,讲得很不错,备注一下: 1、软件开发中的锁:不同技能的人或模块需要依赖另外的人或模块,长时间等待延长开发周期;模块或部门利益、交流成本;接力棒似的开发模式,A团队开发完成,B团队再开发; 解决办法:强化沟通交流,提供高水平的接口服 阅读全文
posted @ 2017-04-14 14:42 lion_eagle 阅读(202) 评论(0) 推荐(0) 编辑