南山行者

君子之交淡如水,学海无涯苦作舟。

Redis 主从复制 原理与用法

Redis 复制功能的几个重要方面: 1. 一个Master可以有多个Slave; 2. Redis使用异步复制。从2.8开始,Slave会周期性(每秒一次)发起一个Ack确认复制流(replication stream)被处理进度; 3. 不仅主服务器可以有从服务器, 从服务器也可以有自己的从服...

2015-12-31 17:31:32

阅读数 9804

评论数 5

Redis Sentinel 机制与用法

概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多...

2015-12-31 16:43:58

阅读数 689

评论数 1

Percona XtraDB Cluster 简介

错误的MySQL配置 只要定义了wsrep_cluster_address,即使没有定义wsrep_provider参数,MySQL也可以正常启动,但某些希望执行的功能却无法正常工作,而且很难找到问题所在。MySQL错误日志会有如下输出结果: $ bin/mysqld_safe --defaul...

2015-12-29 16:01:06

阅读数 1300

评论数 1

Percona XtraDB Cluster 安装

pxc和普通mysql的安装方式相同,这里只说介绍rpm安装和源码安装两种方法。 一,yum安装 1,pxc安装按先后顺序需要grlera,shared,client, xtrabackup,server。其中socat被server依赖,也可以yum安装。同时有版本兼容问题,参考如下rpm包。 ...

2015-12-29 12:21:55

阅读数 737

评论数 1

Centos 7 - 静态IP设置

1,进入路径 # /etc/sysconfig/network-scripts 2,找到类似ifcfg-eth*的文件夹,打开并修改如下内容 BOOTPROTO="static" #dhcp改为static   ONBOOT="yes" #开机启用本配置 ...

2015-12-28 17:58:23

阅读数 389

评论数 1

RabbitMQ的安装

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展。 环境:CentOS 6.5 1,安装JDK7      解压后,配置JDK环境变量       vim /ect/profile,       在最后增加 ...

2015-12-23 17:31:05

阅读数 603

评论数 1

利用Canal完成Mysql数据同步Redis

流程 Canal的原理是模拟Slave向Master发送请求,Canal解析binlog,但不将解析结果持久化,而是保存在内存中,每次有客户端读取一次消息,就删除该消息。这里所说的客户端,就需要我们写一个连接Canal的程序,持续从Canal获取数据。 步骤 一、配置Canal 参考https...

2015-12-21 13:18:04

阅读数 26381

评论数 7

NoSQL-思维导图

2015-12-21 13:15:04

阅读数 1247

评论数 1

关于GAP死锁的场景

场景是表中id从5到9的数据被删除,当事务A锁定id=6,事务B也锁定id=6,事务A插入会等待,事务B插入提示死锁, 事务B回滚,事务A提交。 数据如下: REPEATABLE-READ隔离(默认): 事务A执行插入: 显示锁类型是行锁,模式是排他、GAP锁。 事务B执行插入: 事务B...

2015-12-18 17:50:29

阅读数 1756

评论数 0

MySQL-Checkpoint

checkpoint干的事情: 将缓冲池中的脏页刷新回磁盘,不同之处在于每次从哪里取多少脏页刷新到磁盘,以及什么时候触发checkpoint。 checkpoint解决的问题: 1.缩短数据库的恢复时间(数据库宕机时,不需要重做所有的日志,因checkpoint之前的页都已经刷新回磁盘,...

2015-12-17 12:16:02

阅读数 905

评论数 0

MySQL-Redo Log

redo日志由两部分构成:redo log buffer、redo log file。innodb是支持事务的存储引擎,在事务提交时,必须先将该事务的所有日志写入到redo日志文件中,待事务的commit操作完成才算整个事务操作完成。在每次将redo log buffer写入redo log fi...

2015-12-17 11:07:33

阅读数 638

评论数 1

MySQL-Double Write

没有Double Write特性的时候 更新数据后,会将dirty page放到innodb buffer cache中。此时页的checksum值会发生变化。 页的头部fileheader部分有checksum项,名为file_page_space_or_checksum。 页的尾部fil...

2015-12-17 10:55:07

阅读数 489

评论数 0

微服务架构的设计模式

前不久,Java Code Geeks发表了一篇 文章 ,分析 单体应用与微服务的优缺点 。近日,该网站又发表了一篇 文章 ,提供了六种微服务架构的设计模式。 聚合器微服务设计模式 这是一种最常用也最简单的设计模式,如下图所示: 聚合器调用多个服务实现应用程序所需的...

2015-12-13 22:43:54

阅读数 575

评论数 0

linux 同步IO: sync、fsync与fdatasync

传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其...

2015-12-13 01:26:47

阅读数 289

评论数 0

mysql回滚后数据文件增大的原因

执行的语句是 下图依次是:插入前,回滚前,回滚后的文件大小 造成这种情况的原因是:在事务中执行插入时,innodb存储引擎会先初始化一段空间,为插入的数据做准备,当回滚后,数据没有插入,但空间不会收缩, 造成数据文件增大。这里也是mysql表空间的常见现象,可扩大, 但无法自动...

2015-12-10 17:36:16

阅读数 390

评论数 0

数据库高可用架构(MySQL、Oracle、MongoDB、Redis)

一、MySQL MySQL小型高可用架构 方案:MySQL双主、主从 + Keepalived主从自动切换 服务器资源:两台PC Server 优点:架构简单,节省资源 缺点:无法线性扩展,主从失败之后需要手动恢复主从架构 MySQL中型高可用架构 方案:MMM + MySQL双...

2015-12-10 15:16:52

阅读数 764

评论数 0

Greenplum数据仓库简介

Greenplum做为新一代的数据库引擎,有着良好的发展与应用前景。强大的工作效率,低成本的硬件平台对数据仓库与商业智能建设有很大的吸引力。要清楚的了解其特点最好从架构着手。 架构分析  Greenplum的高性能得益于其良好的体系结构。Greenplum的架构采用了MPP(大规模并行处理)。在 ...

2015-12-10 12:03:23

阅读数 2419

评论数 0

I/O多路复用技术(multiplexing)

首先,要从你常用的IO操作谈起,比如read和write,通常IO操作都是阻塞I/O的,也就是说当你调用read时,如果没有数据收到,那么线程或者进程就会被挂起,直到收到数据。 (图片来源:http://www.masterraghu.com/subjects/np/introduction/...

2015-12-10 11:21:48

阅读数 2082

评论数 0

MySQL线程池(THREAD POOL)的原理

线程池是MySQL5.6企业版的一个核心功能,对于服务器应用而言,无论是web应用服务还是DB服务,高并发请求始终是一个绕不开的话题。当有大量请求并发访问时,一定伴随着资源的不断创建和释放,导致资源利用率低,降低了服务质量。线程池是一种通用的技术,通过预先创建一定数量的线程,当有请求达到时,线程池...

2015-12-10 10:19:24

阅读数 5100

评论数 0

MySQL线程池(THREAD POOL)的处理

在默认的MySQL的连接模型中,一个连接对应一个MySQL服务器的线程来处理连接请求( 很类似于oracle的专用服务器连接),在某些情况这种配置可能会导致一些问题,比如以下情形: 1,服务器同时太多活动连接线程,而cpu个数有限,会导致CONTEXT SWITCH十分严重, 同时太多的进程在可...

2015-12-09 17:38:43

阅读数 6246

评论数 0

提示
确定要删除当前文章?
取消 删除