淘宝配置中心化管理Diamond
1.检出diamond的源代码,http://code.taobao.org/p/diamond/src/
2.创建数据库
create table config_info (
`id` bigint(64) unsigned NOT NULL auto_increment,
`data_id` varchar(255) NOT NULL default '',
`group_id` varchar(128) NOT NULL default '',
`content` longtext NOT NULL,
`md5` varchar(32) NOT NULL default '',
`src_ip` varchar(20) default NULL,
`src_user` varchar(20) default NULL,
`gmt_create` datetime NOT NULL default '2010-05-05 00:00:00',
`gmt_modified` datetime NOT NULL default '2010-05-05 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_config_datagroup` (`data_id`,`group_id`)
);
###group_info暂时没有使用
create table group_info (
`id` bigint(64) unsigned NOT NULL auto_increment,
`address` varchar(70) NOT NULL default '',
`data_id` varchar(255) NOT NULL default '',
`group_id` varchar(128) NOT NULL default '',
`src_ip` varchar(20) default NULL,
`src_user` varchar(20) default NULL,
`gmt_create` datetime NOT NULL default '2010-05-05 00:00:00',
`gmt_modified` datetime NOT NULL default '2010-05-05 00:00:00',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_group_address` (`address`,`data_id`,`group_id`)
);
3.位移运算符
<< 左移运算符[二进制位左移若干位,高位丢弃,低位补0] [1100100(100) << 1] => [11001000(200)]
>> 右移运算符[二进制位右移若干位,低位丢弃,高位补0(或1)][对于有符号数,在右移时,符号位将随同移动.当为正数时,最高位补0.而为负数时,符号位为1.最高位是补0或是补1 取决于编译器的规定] [11001000(200) >> 1] => [1100100(100)]
>>> 无符号右移运算符 [1100100(100) >>> 1] => [110010(50)]
~ 位取反运算符[二进制位按位取反] [~1010] => [0101]
& 位与运算符[相同位的两个数字都为1,则为1;若有一个不为1,则为0] [1100100&110010] => [100000(32)]
| 位或运算符[相同位只要一个为1即为1] [1100100|110010] => [1110110(118)]
^ 位异或运算符[二进制位不同则为1,相同则为0] [1100100^110010] => [1010110(86)]