MySQL多线程同步-Transfer使用测试
由淘宝核心系统研发—数据库组开发的MySQL-Transfer,用于解决MySQL主从同步延迟的问题,从MySQL单线程到多线程的工作模式。可以观看@丁奇的相关资料:
MySQL多线程同步-Transfer使用说明
MySQL异步复制延迟解决的架构设计与运维架构—在线播放—优酷网
系统结构 :
传统的主从结构是 [Master] à [Slave], Master和slave主从关系;
使用transfer以后,[Master] à [Transfer] .--> [Slave], Master和Transfer主从关系,Transfer和Slave是Client-Server关系。
服务器环境:
主库:192.168.15.216 (3306端口)
从库:192.168.15.217 (3306端口)
Transfer: 192.168.15.217 (3307端口)
MySQL版本:mysql-5.5.18-linux2.6-x86_64.tar.gz
存储引擎:Innodb
Database: rocdata
MySQL-Transfer:Transfer.2.1-based-PS-5.5.18
注:
Tranfsfer相同的表使用同一个线程更新,若只有一个表,性能与原生版本相同。要体现效果,一般16个表或以上,考虑到线上大库都有分表,这个条件比较容易满足。
一、192.168.15.216主库配置
首先确认主库上使用row格式的binlog,配置/etc/my.cnf:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld1]
port = 3306
socket = /tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/mysqldata/
bind-address=192.168.15.216
skip-external-locking
skip-name-resolve
user=mysql
max_allowed_packet = 256M
query_cache_size=256M
max_connections=2000
max_connect_errors=10000
key_buffer_size=6000M
read_buffer_size=32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size=512M
tmp_table_size=1024M
old-passwords
interactive_timeout=60
wait_timeout=60
connect_timeout=60
table_cache=8192
thread_cache_size=512
sort_buffer_size=128M
back_log = 500
thread_concurrency=48
expire_logs_days=10
log-bin=mysql-bin
#binlog_format=STATEMENT
binlog_format=ROW
#binlog_format="MIXED
# master
server-id = 1
binlog-do-db = rocdata
binlog-ignore-db = mysql
启动MySQL,并查看Pos状态。
二、192.168.15.217从库配置。
MySQL端口3306和3307 ,建议MySQL TDIR目录区分开来。我的MySQL和Transfer目录:
/usr/local/mysql/
/usr/local/mysql-transfer
Transfer.2.1-based-PS-5.5.18替换T安装目录/usr/local/mysql-transfer/bin/下的mysqld。
1、配置3306端口,同步Master数据,这里不需要写主从同步信息,和单台MySQL配置一样。
/usr/local/mysql目录部署一个MySQL版本5.5.18(真实库),配置/etc/my.cnf:
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/mysqldata/data3306
bind-address=192.168.15.217
skip-external-locking
skip-name-resolve
user=mysql
max_allowed_packet = 256M
query_cache_size=256M
max_connections=2000
max_connect_errors=10000
key_buffer_size=6000M
read_buffer_size=32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size=512M
tmp_table_size=1024M
old-passwords
interactive_timeout=60
wait_timeout=60
connect_timeout=60
table_cache=8192
thread_cache_size=512
sort_buffer_size=128M
back_log = 500
thread_concurrency=48
expire_logs_days=10
启动MySQL 3306端口,并导入数据,前提需要记录的Pos点,保证Transfer同步正常。和传统的主从拷贝数据一样。
此时3306端口的运行状态。
2、配置3307 Transfer服务
a) /usr/local/mysql-transfer/目录部署一个MySQL (T),版本5.5.18
b) 用附件中的mysqld替换T安装目录/usr/local/mysql-transfer/bin/下的mysqld
c) 在/usr/local/mysql-transfer/log 目录下执行下执行 for((i=0; i<=16; i++)); do mkdir $i;done
d) 配置/etc/my3307.cnf,做以下修改:
[mysqld]
port = 3307
socket = /tmp/mysql3307.sock
basedir=/usr/local/mysql
datadir=/mysqldata/data3307
bind-address=192.168.15.217
skip-external-locking
skip-name-resolve
user=mysql
max_allowed_packet = 1G
query_cache_size=256M
max_connections=2000
max_connect_errors=10000
key_buffer_size=6000M
read_buffer_size=32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size=512M
tmp_table_size=1024M
old-passwords
interactive_timeout=60
wait_timeout=60
connect_timeout=60
table_cache=8192
thread_cache_size=512
sort_buffer_size=128M
back_log = 500
thread_concurrency=48
expire_logs_days=10
#tranfer
transfer_slave_thread = 16
remote_slave_hostname = 192.168.15.217
remote_slave_username = transfer
remote_slave_password = transferpw
remote_slave_port = 3306
relay-log =/usr/local/mysql/log/mysqld-relay-bin
relay-log-index =/usr/local/mysql/log/mysqld-relay-bin.index
master-info-file =/usr/local/mysql/log/master.info
relay-log-info-file =/usr/local/mysql/log/relay-log.info
log_slave_updates = 0
slave_skip_errors=1062,1032
#slave 192.168.15.217
server-id = 3
replicate_do_db = rocdata
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
[说明]配置给Transfer的这个uname必须有Slave的super权限
e) Transfer需要导入同步的数据库结构,不需要数据
f) Slave的 max_allowed_packet设置为1G (建议)
g) 启动Transfer并设置为Master的从库
具体步骤:
在3306端口上赋予Transfer 有Slave的super权限:
mysql> grant all privileges on *.* to 'transfer'@'192.168.15.217' identified by 'transferpw';
在主库192.168.15.216赋予Transfer 有 replicate privileges权限:
mysql> grant replication slave, reload, super on *.* to 'repluser216'@'192.168.15.217' identified by 'replpasswd216';
启动Transfer并设置为Master的从库:
mysql> CHANGE MASTER to MASTER_HOST='192.168.15.216', MASTER_PORT=3306, MASTER_USER='repluser216', MASTER_PASSWORD='replpasswd216', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=82104;
三、测试
1、在192.168.15.216主库rocdate上创建表test,并写入数据:
mysql> create table test ( id int(4));
mysql> insert into test values(1);
mysql> insert into test values(2);
2、查看192.18.15.216 MySQL(T)和MySQL真实库状态:
说明:关于 MySQL-Transfer 的性能还未做测试,后期有时间会补上……有错误的地方,希望CU的大侠可以指正,谢谢
http://blog.chinaunix.net/uid-25266990-id-3515141.html
MySQL目前在互联网领域应用非常广阔一个数据库系统. MySQL主从数据库是常用的使用方法之一. 本文将通过基于vmware的Centos虚拟机来实验安装MySQL的主从方式部署.
一.Vmware 及linux环境安装
1. Vmware软件安装
Vmware是流行的虚拟机软件, vmare软件下载安装方法请到搜索引擎去搜索,有各种文章可以参考.
2. Linux系统安装
用户安装完成vmware系统后可以自行安装linux系统
我们这里给一个最方便的方式, 下载已经安装好的linux for vmware虚拟机软件.
网址如下: http://www.thoughtpolice.co.uk/vmware/ 里面有很多已经安装好的linux的vmware系统.
本文是以下面的版本进行测试安装的.
64-bit: centos-5.6-x86_64-server.zip, 456M
fast torrent download!, web download
md5sum: 2590006571f52ca00674d20d3b376672
3. 解压缩下载后的虚拟机文件到一个硬盘空间比较大的硬盘分区中.
4. 打开解压缩的文件目录
双击文件centos-5.5-x86_64-server.vmx,然后启动vmware虚拟机
点击图中红色区域的按钮, 启动虚拟机
5. 登录系统
如下图, 启动后系统如下界面
图中1位置表示当前虚拟机的运行状态
图中2位置表示当前虚拟机的名称, 例如图中有多个虚拟机, 当前正在看到到是 centos-5.5-x86_64-server这个虚拟机
图中3位置 表示当前用户 操作的键盘,鼠标还是在用户自己的计算机中, 你的输入,你的鼠标移动都是给你自己的操作系统的. 请特别注意 白色的鼠标箭头,这 个是最明显的看到你当前在那个系统下的标记.
用户需要在黑色窗口中心附近点击鼠标左键 ,这样就可以切换的键盘及鼠标操作到虚拟机中去.以后在输入键盘及鼠标移动等消息是发送给虚拟机的,你的本机程序将无法获得信息.(用户若是需要重虚拟机中退出请求等, 需要 按住左侧 的ctrl 同时在按住 左侧的 alt两个组合键,鼠标将退回到当前操作系统状态,用户可以继续输入数据了.)
用户点击鼠标左键后, 在登录页面可以输入用户名 :root
然后提示输入密码信息, 用户可以输入原始密码 :"thoughtpolice"(密码是双引号中内容)The root password for this image is "thoughtpolice".
6. 查看虚拟机ip地址
如上图: 图1. 处输入root(用户名)
图2. 输入密码thoughtpolice
图3. 输入ifconfig命令,
最后系统会显示下面的 提示信息
图4 处 是 本机当前ip地址.
7. 配置SecureCRT软件,
SecureCRT是一常见的linux终端软件,我们可以通过这个软件登录我们的虚拟机系统,完成各种操作,他的操作方法比直接在虚拟机上操作方便多了.软件的下载及安装大家自己去搜索及下载.
安装完成后, 启动软件, 然后点击
图1处 启动快速连接,
图2处 输入ip地址
图3处 输入用户名
二. MySQL安装
1. 安装前的准备工作
在SecureCRT登录后, 执行: yum list | grep mysql 命令, 结果如下图:
然后显示相关的软件包列表, 右侧2的位置是软件报的相关信息.
若是出现下图的信息,
表示软件包已经被安装了,我们需要卸载他. (用 yum remove 包名进行卸载, 这里可能需要的是:yum remove mysql.x86_64 ).
2. 配置mysql的yum数据源.
在命令行中输入: vi /etc/yum.repos.d/Percona.repo 打开vi编辑器
然后进入输入模式, 最后输入如下文本:
[percona]
name = CentOS $releasever – Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1
最后结果如下:
在命令提示行中 输入:vi /etc/pki/rpm-gpg/RPM-GPG-KEY-percona
然后输入文本:
—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: GnuPG v1.4.9 (GNU/Linux)
mQGiBEsm3aERBACyB1E9ixebIMRGtmD45c6c/wi2IVIa6O3G1f6cyHH4ump6ejOi
AX63hhEs4MUCGO7KnON1hpjuNN7MQZtGTJC0iX97X2Mk+IwB1KmBYN9sS/OqhA5C
itj2RAkug4PFHR9dy21v0flj66KjBS3GpuOadpcrZ/k0g7Zi6t7kDWV0hwCgxCa2
f/ESC2MN3q3j9hfMTBhhDCsD/3+iOxtDAUlPMIH50MdK5yqagdj8V/sxaHJ5u/zw
YQunRlhB9f9QUFfhfnjRn8wjeYasMARDctCde5nbx3Pc+nRIXoB4D1Z1ZxRzR/lb
7S4i8KRr9xhommFnDv/egkx+7X1aFp1f2wN2DQ4ecGF4EAAVHwFz8H4eQgsbLsa6
7DV3BACj1cBwCf8tckWsvFtQfCP4CiBB50Ku49MU2Nfwq7durfIiePF4IIYRDZgg
kHKSfP3oUZBGJx00BujtTobERraaV7lIRIwETZao76MqGt9K1uIqw4NT/jAbi9ce
rFaOmAkaujbcB11HYIyjtkAGq9mXxaVqCC3RPWGr+fqAx/akBLQ2UGVyY29uYSBN
eVNRTCBEZXZlbG9wbWVudCBUZWFtIDxteXNxbC1kZXZAcGVyY29uYS5jb20+iGAE
ExECACAFAksm3aECGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAcTL3NzS79
Kpk/AKCQKSEgwX9r8jR+6tAnCVpzyUFOQwCfX+fw3OAoYeFZB3eu2oT8OBTiVYu5
Ag0ESybdoRAIAKKUV8rbqlB8qwZdWlmrwQqg3o7OpoAJ53/QOIySDmqy5TmNEPLm
lHkwGqEqfbFYoTbOCEEJi2yFLg9UJCSBM/sfPaqb2jGP7fc0nZBgUBnFuA9USX72
O0PzVAF7rCnWaIz76iY+AMI6xKeRy91TxYo/yenF1nRSJ+rExwlPcHgI685GNuFG
chAExMTgbnoPx1ka1Vqbe6iza+FnJq3f4p9luGbZdSParGdlKhGqvVUJ3FLeLTqt
caOn5cN2ZsdakE07GzdSktVtdYPT5BNMKgOAxhXKy11IPLj2Z5C33iVYSXjpTelJ
b2qHvcg9XDMhmYJyE3O4AWFh2no3Jf4ypIcABA0IAJO8ms9ov6bFqFTqA0UW2gWQ
cKFN4Q6NPV6IW0rV61ONLUc0VFXvYDtwsRbUmUYkB/L/R9fHj4lRUDbGEQrLCoE+
/HyYvr2rxP94PT6Bkjk/aiCCPAKZRj5CFUKRpShfDIiow9qxtqv7yVd514Qqmjb4
eEihtcjltGAoS54+6C3lbjrHUQhLwPGqlAh8uZKzfSZq0C06kTxiEqsG6VDDYWy6
L7qaMwOqWdQtdekKiCk8w/FoovsMYED2qlWEt0i52G+0CjoRFx2zNsN3v4dWiIhk
ZSL00Mx+g3NA7pQ1Yo5Vhok034mP8L2fBLhhWaK3LG63jYvd0HLkUFhNG+xjkpeI
SQQYEQIACQUCSybdoQIbDAAKCRAcTL3NzS79KlacAJ0aAkBQapIaHNvmAhtVjLPN
wke4ZgCePe3sPPF49lBal7QaYPdjqapa1SQ=
=qcCk
—–END PGP PUBLIC KEY BLOCK—–
最后显示如下:
最后输入 yum list | grep ercona | grep 55 查看源是否配置完成
图中显示的 几个 installed状态, 因为当前的虚拟中安装mysql造成的,没去卸载就截图了,用户安装的时候应显示的Percona的.
3. 安装Mysql
运行如下命令:
yum install -y Percona-Server-test-55.x86_64
之后运行如下命令:
yum install -y Percona-Server-server-55.x86_64
最后运行:
reboot命令, 重新启动服务器系统
三. 复制虚拟机
1. 关闭虚拟机
在linux终端下,调用shutdown now 命令,关闭linux虚拟机
2. Clone linux虚拟机
3. 启动clone后虚拟机, 检查虚拟机的ip地址, 有了这个ip地址才好进授权(msyql同步帐号的授权)工作
四. 配置mysql主从环境
1. Mysql主从服务器环境
l Mysql主服务器相关配置
[root@mysql01 ~]# hostname
mysql01
[root@mysql01 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:CC:9B:AA
inet addr:192.168.2.66 Bcast:192.168.2.255 Mask:255.255.255.0
…………..
[root@mysql01 ~]#
l 从服务器配置
[root@mysql02 ~]# hostname
mysql02
[root@mysql02 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:BC:22:5B
inet addr:192.168.2.97 Bcast:192.168.2.255 Mask:255.255.255.0
……
[root@mysql02 ~]#
2. 在主服务器配置同步帐号
首先如下图登录mysql服务器
在命令提示符中输入下面命令, 注意帐号:repl, ip地址:2.97, 密码:123456, 注意授权全部的 数据库
grant replication slave on *.* to ‘repl’@’192.168.2.97′ identified by ’123456′;(注意:去除前面的空格)
输入完成后如下图
要注意: 要在mysql01就是做master的机器上执行
Sql语句中要去除前面的多余空格(里面有可能有中文空格等)
执行完毕一般需要同 flush语句进行处理, 但我们稍后要重新启动mysql服务器因此就不需要了, 直接输入 \q; 退出 mysql程序.
3. 生成 mysql的配置文件
l 执行搜索命令,查找mysql 配置文件模板
find / -name *.cnf 最后显示如下:
注意图中绿色区域
l 生成配置文件
输入如下命令:
# cat /usr/share/doc/Percona-Server-server-55-5.5.28/my-large.cnf > /etc/my.cnf
l 编辑配置文件
vi /etc/my.cnf 文件
注意在中的[mysqld]配置区域中, 的绿色区域附近添加粉色区域的 文本, 表示不同步 mysql数据库
binlog-ignore-db=mysql
l 重新启动mysql服务
执行service mysql restart 命令重新启动mysql服务器
4. 配置从服务器
开始从服务器的虚拟机, 通过linux终端连接到从服务器的虚拟机,然后按照下面步骤完成相应工作.
l 生成配置文件
# cat /usr/share/doc/Percona-Server-server-55-5.5.28/my-large.cnf > /etc/my.cnf
vi /etc/my.cnf 文件, 添加如下代码server-id = 2
l 重新启动mysql服务
[root@mysql02 ~]# service mysql restart
Shutting down MySQL (Percona Server)…[ OK ]
Starting MySQL (Percona Server)..[ OK ]
l 执行修改主从的sql语句
首先如上图登录 mysql的客户端中, 然后执行下面的sql语句,来设置从那里进行数据的同步操作
CHANGE MASTER TO MASTER_HOST=’192.168.2.66′, MASTER_PORT=3306, MASTER_USER=’repl’, MASTER_PASSWORD=’123456′, MASTER_CONNECT_RETRY=2;
l 开始slave服务
在mysql的sql界面中执行
start slave;
开始mysql的 slave功能
l 显示工作状态
在mysql的sql界面中执行如下语句
show slave status\G;
显示情况如下:
l 查看从服务器目录文件
如上图进入相关mysql的目录,检查相关文件注意红色区域文件及绿色区域文件
5. 主数据库执行创建数据库语句
mysql> CREATE DATABASE `mytest` CHARACTER SET ‘utf8′ COLLATE ‘utf8_general_ci’;
Query OK, 1 row affected (0.00 sec)
6. 从库中执行显示数据库的命令
show databases;
显示情况如上, 已经将新创举的数据库从主库同步到从库了.
相关文章
- Haproxy安装和动态配置更改测试
本文主要描述haproxy的安装及简单配置过程。并且应用这个简单的配置做mysql的负载均衡,同时haproxy的配置文件发生变化时我们如何重新启动haproxy程序,并且确定haproxy程序重新启... - 基于数据库的权限系统的设计
这一天将讲述一个基本的基于数据库的权限管理系统的设计,在这一天的课程的最后将讲述“左右值无限分类实现算法”如何来优化“系统菜单”的结构而告终。今天的内容和前几天的基础框架是一样的它们都属于基础知识,在... - MySQL 数据库的备份和恢复
本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22。 目前 MySQL 支持的免费备份工... - linux centos下配置mysql主从同步的步骤
来源:互联网 linux centos下配置mysql主从同步的步骤: 一、主机环境 主机: master操作系统:centos 5.3 IP:192.168.1.... - MySQL主从同步加速 Transfer– FAQ
来源:互联网 Q: Transfer是什么 A: 是一个解决MySQL原生主从同步延迟的方案。 Transfer本身是一个在MySQL源码上打的patch,可以用于当Slave,也可以用于当第三方...
http://www.iigrowing.cn/mysql-zhu-cong-tong-bu-shi-yan.html
MySQL多线程同步-Transfer使用测试的更多相关文章
- Mysql多线程性能测试工具sysbench 安装、使用和测试
From:http://www.cnblogs.com/zhoujinyi/archive/2013/04/19/3029134.html 摘要: sysbench是一个开源的.模块化的.跨 ...
- centos7下mysql半同步复制原理安装测试详解
原理简介: 在MySQL5.5之前,MySQL的复制其实都是异步复制(见下图),主库和从库的数据之间存在一定的延迟,这样存在一个隐患:当在主库上写入一个事务并提交成功,而从库尚未得到主库推送的BinL ...
- No.1.测试Synchronized加锁String字符串后的多线程同步状况
测试目的描述 Synchronized关键字锁定String字符串可能会带来严重的后果, 尽量不要使用 synchronized(String a) 因为JVM中,因为字符串常量池具有缓冲功能! 接下 ...
- MySQL系列详解八:MySQL多线程复制演示-技术流ken
前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有 ...
- c#中多线程同步Lock(锁)的研究以及跨线程UI的操作
本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象.由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧. 其实多线程的同步,使用 ...
- MySQL半同步复制
从MySQL5.5开始,MySQL以插件的形式支持半同步复制.如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是 ...
- C#多线程同步事件及等待句柄AutoResetEvent 和 ManualResetEvent
最近捣鼓了一下多线程的同步问题,发现其实C#关于多线程同步事件处理还是很灵活,这里主要写一下,自己测试的一些代码,涉及到了AutoResetEvent 和 ManualResetEvent,当然还有也 ...
- MySQL主从同步配置
如果主从配置之前安装了云平台,请停止云平台后在进行mysql主从配置. 1. 登录master数据库,检查数据库端口防火墙设置,允许远程客户连接,如果没有,执行以下操作. 执行命令:iptables ...
- php多线程抓取信息测试例子
php多线程抓取信息测试例子 PHP 5.3 以上版本,使用pthreads PHP扩展,可以使PHP真正地支持多线程.多线程在处理重复性的循环任务,能够大大缩短程序执行时间. PHP扩展下载:htt ...
随机推荐
- C语言跟内存分配方式-alloc malloc calloc
转载:http://blog.csdn.net/ubuntulover/article/details/7581317 (1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整 ...
- Centos7安装配置tomcat 9并设置自动启动
原文:https://blog.csdn.net/stinkstone/article/details/78082725 1.官网下载安装包 这里选择适合Linux的安装包,下载到本地后上传到cent ...
- unity 3D + Google Play In-app Billing (IAB)(转) 热度 3
最近由于工作需要,研究unity如何接入Google Play以实现游戏内购买.目前IAB的实现,prime31做的插件比较好,各平台的IAB均有,但费用相对过高(几乎都是70刀左右,可怜穷小子).在 ...
- Android:手把手带你深入剖析 Retrofit 2.0 源码
前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...
- 全负荷的 Node.js[转载]
一个Node.JS 的进程只会运行在单个的物理核心上,就是因为这一点,在开发可扩展的服务器的时候就需要格外的注意. 因为有一系列稳定的API,加上原生扩展的开发来管理进程,所以有很多不同的方法来设计一 ...
- OpenShift跨版本升级
官方的in-place upgrade直接在线升级的参考链接 https://docs.openshift.com/container-platform/3.11/upgrading/automate ...
- eclipse 中添加自定义 classpath 的方法,以及 javac 和 java 的一些使用细节
目标: 将 ~/java 加入classpath eclipse: 右键选中 Project, Properties, Java Build Path, Libraries, Add External ...
- tyvj P1403 关押罪犯 题解
P1403 [NOIP2010]关押罪犯 时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他 ...
- 比較不错的一个ios找茬游戏源代码
找茬游戏源代码 .这个是一款很不错的ios找茬游戏源代码,该游戏的兼容性很好的.并且还能够支持ipad和iphone.UI界面设计得也很美丽,游戏源代码真的是一款很完美.并且又很完整的一款休闲类的游戏 ...
- HBase系统架构及数据结构(转)
原文链接:Hbase系统架构及数据结构 HBase中的表一般有这样的特点: 1 大:一个表可以有上亿行,上百万列 2 面向列:面向列(族)的存储和权限控制,列(族)独立检索. 3 稀疏:对于为空(nu ...