最近看到篇文章都在谈论12306使用的分布式内存数据库,感觉比较火热,由于对12306充满了好奇心,于是自己就对Geode研究了一下。
Geode 是一个开源的分布式内存数据库,用于构建水平伸缩的应用,基于 GemFire 开发,使用的是java。
它有如下特性,这部分来源于网络介绍。
1. 综合冗余 复制和shared nothing的持久化架构,提供自动预防故障的高性能的传递。
2.横向扩展到数千万个缓存成员,使用多个缓存拓扑来满足不同企业需求缓存能够跨计算机分布。
3.异步和同步缓存更新传播
4.delta变化量传播能只在一个对象(delta)的新旧不同版本之间传播,而不是将整个对象进行传播,好处是显著降低了分布的开销。
5.可靠的异步事件通知,保证消息传递能实现定制的低延时的分布。
6.在没有附加硬件情况下,应用运行性能提高4到40倍。
7.数据敏感和实时商业智能,如果数据改变,你会立即能够看到改变。
8.集成Spring框架简化可扩展的事务企业应用。
9.JTA兼容事务支持
10.跨整个集群范围的配置能够持久或导出到其他集群
11.远程HTTP集群管理
12.REST API和激活REST应用开发
13.主版本滚动升级。
这里有几篇博文非常不错,看官可以有兴趣阅读一下:http://geek.csdn.net/news/detail/34772
目前Geode资料相对较少,所以只能去看它的官方文档,地址:http://geode-docs.cfapps.io/docs/
Geode安装:
注:使用虚拟机安装的同学,尽量把虚拟机内存设为4G。
我使用的centos58,64位,4G
1、首先安装java环境,需要jdk 1.7以上
4、php rest api使用
在看到Geode提供的客户端,目前有java,python,ruby,没有php版本的,因为Geode有提供Rest api的接口,所以写了个php的版本。
代码位置:https://github.com/luzhengfei/php-gemfire-rest
使用方法:
<?php
/**
* author: lzf
* createTime: 15/7/1 22:11
* description:
*/
require_once '../PHPGeodeClient.Api.php';
$geode = new PHPGeodeClient("192.168.199.132","8080");
$re = $geode->list_all_regions();
print_r($re->getRespondData());
$re = $geode->create('user_profile','ccc',array('cccc','dddd' => 'aaaaa'));
print_r($re->getRespondData());
$re = $geode->create('user_profile','xt',array('name' => 'xt','age' => 50));
print_r($re->getRespondData());
$re = $geode->get_region_all('user_profile');
print_r($re->getRespondData());
$re = $geode->get_region_keys('user_profile');
print_r($re->getRespondData());
$re = $geode->get_entries_by_keys('user_profile',array('ccc'));
print_r($re->getRespondData());
$data = array(
'name' => 'lzf',
'age' => 23
);
$re = $geode->update('user_profile','ccc',$data);
$re = $geode->create_queries('sel','select * from /user_profile');
//$re = $geode->update_queries('sel','select * from /user_profile where name=\'lzf\'');
$re = $geode->update_queries('sel','select * from /user_profile where age>10');
$re = $geode->execute_queries('sel');
print_r($re->getRespondData());
$re = $geode->list_queries();
print_r($re->getRespondData());
如有问题,欢迎批评指证。
![微笑](http://static.blog.csdn.net/xheditor/xheditor_emot/default/smile.gif)