最近在研究开源内存数据库,apache ignite用了一段时间感觉还行因为资料太少,因此只是用了它的rpc功能做了一个分布式框架。
前天发现apache geode这个框架,据说是12306的Gemfire的开源版本。
官网地址:http://geode.apache.org/
一、安装
安装之前,服务器上必须要安装jdk(最好是jdk1.8),配置好JAVA_HOME
下载
1
2
3
|
wget http:
//mirrors
.tuna.tsinghua.edu.cn
/apache/geode/1
.2.1
/apache-geode-1
.2.1.
tar
.gz
tar
-zxvf apache-geode-1.2.1.
tar
.gz -C
/opt/
cd
/opt/apache-geode-1
.2.1/
|
添加bin到PATH
1
|
vi
/etc/profile
|
在最后一行新增
1
|
export
PATH=$PATH:
/opt/apache-geode-1
.2.1
/bin
|
使环境变量生效
1
|
source
/etc/profile
|
测试是否安装成功
1
|
gfsh version --full
|
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@master ~]
# gfsh version --full
Build-Date: 2017-09-16 07:20:46 -0700
Build-Id: abaker 0
Build-Java-Version: 1.8.0_121
Build-Platform: Mac OS X 10.12.3 x86_64
Product-Name: Apache Geode
Product-Version: 1.2.1
Source-Date: 2017-09-08 11:57:38 -0700
Source-Repository: release
/1
.2.1
Source-Revision: 0b881b515eb1dcea974f0f5c1b40da03d42af9cf
Native version: native code unavailable
Running on:
/192
.168.60.50, 4 cpu(s), amd64 Linux 3.10.0-327.el7.x86_64
|
二、启动
启动locator,locator我理解类似一个请求转发器负责转发各种查询到各个server上,默认端口为:10334
1
2
3
4
5
6
7
8
9
10
11
|
[root@master ~]
# gfsh
_________________________ __
/ _____/ ______/ ______/
/____/
/
/ / __/
/___
/_____
/ _____ /
/
/__/
/ ____/ _____/ / / / /
/______/_/
/______/_/
/_/
1.2.1
Monitor and Manage Apache Geode
gfsh>
gfsh>start locator --name=locator50
|
启动server
1
|
gfsh>start server --name=server50 --server-port=40411
|
查看集群情况,这里只有一台
1
2
3
4
5
|
gfsh>list members
Name | Id
--------- | ---------------------------------------------------
locator50 | 192.168.60.50(locator50:32148:locator)<ec><v0>:1024
server50 | 192.168.60.50(server50:32411)<v3>:1025
|
三、试用命令行
可以参考文档:http://geode.apache.org/docs/guide/12/getting_started/15_minute_quickstart_gfsh.html
3.1作为客户端连接locator
connect命令不带任何参数的话表示连接本机
1
2
3
4
|
gfsh>connect --locator=192.168.60.50[10334]
Connecting to Locator at [host=192.168.60.50, port=10334] ..
Connecting to Manager at [host=master, port=1099] ..
Successfully connected to: [host=master, port=1099]
|
3.2创建region
region可以认为数据库里的表,
1
|
create region --name=regionA --
type
=REPLICATE_PERSISTENT
|
3.2查看region列表
1
2
3
4
|
gfsh>list regions
List of regions
---------------
regionA
|
3.3插入两条kv数据
1
2
3
4
5
6
7
8
9
10
11
12
13
|
gfsh>put --region=regionA --key=
"1"
--value=
"one"
Result :
true
Key Class : java.lang.String
Key : 1
Value Class : java.lang.String
Old Value : <NULL>
gfsh>put --region=regionA --key=
"2"
--value=
"two"
Result :
true
Key Class : java.lang.String
Key : 2
Value Class : java.lang.String
Old Value : <NULL>
|
3.4 查询数据
1
2
3
4
5
6
7
8
9
|
gfsh>query --query=
"select * from /regionA"
Result :
true
Limit : 100
Rows : 2
Result
------
two
one
|
本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/1969110,如需转载请自行联系原作者