gemfire基本使用以及spring-data-gemfire的使用
1.安装程序的使用
- locator
启动locator
gfsh>start locator --name=locator1
指定端口启动
gfsh>start locator --name=locator1 --port=12105
指定端口和绑定ip启动
gfsh>start locator --name=locator1 --port=12105 --bind-address=10.10.10.110
查看locator状态
gfsh>status locator --name=locator1
gfsh>status locator --host=localhost --port=10334
连接locator
gfsh>connect
gfsh>connect --locator=localhost[10335]
关闭locator
gfsh>stop locator --name=locator1
关闭整个集群
gfsh>shutdown --include-locators=true
- server
启动server
gfsh>start server --name=server1
指定locator启动
gfsh>start server --name=server1 --locators=localhost[10334]
指定端口和locator启动
gfsh>start server --name=server1 --server-port=12104 --locators=10.10.10.110[12105]
停止server
gfsh>stop server --name=server1
- region
创建region
gfsh>create region --name=test --type=REPLICATE_PERSISTENT
存储kv值
gfsh>put --region=test --key="a" --value="A"
查询信息
gfsh>query --query="select * from /test"
查看region信息
gfsh>describe region --name=test
销毁region
gfsh>destroy region --name=test
部署jar包(deploy)
gemfire中部署jar包分为实体类和计算类两种情况:
1.实体类: 实体类需要部署到gemfire程序的classpath路径下面;
2.计算类: 对于计算类,可以通过deploy命令手动部署;
部署jar包
gfsh>deploy --jars=/data/local/gemfire/apache-geode-1.5.0/lib/geode-demo-1.0-SNAPSHOT.jar
查看已部署jar包
gfsh>list deployed
卸载jar包
gfsh>undeploy --jar=geode-demo-1.0-SNAPSHOT.jar
2. 结合spring-data的使用
maven依赖:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-gemfire</artifactId>
<version>2.0.6.RELEASE</version>
<exclusions>
<exclusion>
<groupId>io.pivotal.gemfire</groupId>
<artifactId>geode-lucene</artifactId>
</exclusion>
</exclusions>
</dependency>
2.1 客户端模式(client)
- 配置文件:
ClientContext.xml
<!-- 定义client-cache-->
<gfe:client-cache id="gemfireCache" pool-name="gemfirePool"/>
<!-- 定义locator连接池-->
<gfe:pool id="gemfirePool" subscription-enabled="true">
<!--<gfe:locator host="localhost" port="10334"/>-->
<gfe:locator host="10.10.10.110" port="12105"/>
</gfe:pool>
<!-- 定义客户端region -->
<gfe:client-region id="messages" cache-ref="gemfireCache" value-constraint="com.cord.demo.data.Message" shortcut="PROXY"/>
- 通过spring-data接口CrudRepository实现OQL查询region:
MessageReposirory.java
@Repository
@DependsOn("gemfireCache")
public interface MessageReposirory extends CrudRepository<Message, String>{
@Query("SELECT * FROM /messages m WHERE m.message = $1")
List<Message> findByMessage(String message);
@Query("SELECT * FROM /messages m WHERE m.message IN SET $1")
List<Message> findByMessages(List<String> messages);
}
ClientTestController.java
...
List<Message> c1 = reposirory.findByMessage("C");
c1.stream().forEach(System.out::println);
...
结论: 客户端模式更多的是对集群中数据的查询,而对集群中region的管理有限;
2.2 服务端嵌入模式(server)
配置文件:
ServerContext.xml
<!-- 定义region-->
<gfe:replicated-region id="messages" value-constraint="com.cord.demo.data.Message"/>
application.properties
#server端口和绑定地址
spring.data.gemfire.cache.server.port=41414
spring.data.gemfire.cache.server.bind-address=localhost
#locator端口和地址
spring.data.gemfire.locator.host=localhost
spring.data.gemfire.locator.port=10335
gemfire.properties
#开启jmx
jmx-manager=true
jmx-manager-start=true
#指定访问locator集群
locators=localhost[10334],localhost[10335]
启动类注解:
ServerApplication.java
@SpringBootApplication
@CacheServerApplication(name = "embedServer")
@EnableLocator
@EnableGemfireRepositories(basePackages = "com.cord.demo.dao")
@ImportResource(locations = {"classpath:ServerContext.xml"})
public class ServerApplication implements CommandLineRunner {
...
}
动态创建region:
ServerTestController.java
...
@Autowired
private Cache gemfireCache; //系统默认的cache名
...
/**获取region工厂*/
RegionFactory<String, String> rf = gemfireCache.createRegionFactory(RegionShortcut.REPLICATE);
/**创建region*/
Region<String, String> region = rf.create("test");
...
gemfire基本使用以及spring-data-gemfire的使用的更多相关文章
- 初探 spring data(一)--- spring data 概述
由于自己一个项目要用多到Sql与NoSql两种截然不同的数据结构,但在编程上我希望统一接口API,让不同类型的数据库能在相同的编程接口模式下运作.于是找了一个spring的官网,发现一个spring ...
- Spring Data(一)概念和仓库的定义
Spring Data(一)概念和仓库的定义 Spring Data的主要任务是为数据访问提供一个相似的.一致的.基于Spring的编程模型,同时又保留着下面各个数据存储的特征.它使得使用数据访问技术 ...
- Spring Data JPA例子[基于Spring Boot、Mysql]
关于Spring Data Spring社区的一个顶级工程,主要用于简化数据(关系型&非关系型)访问,如果我们使用Spring Data来开发程序的话,那么可以省去很多低级别的数据访问操作,如 ...
- 初入spring boot(八 )Spring Data REST
1. 什么是Spring Data REST Spring Data JPA是基于Spring Data 的Repository之上,可以将Repository自动输出为REST资源.目前Spring ...
- Spring Data:企业级Java的现代数据访问技术(影印版)
<Spring Data:企业级Java的现代数据访问技术(影印版)>基本信息原书名:Spring Data:Modern Data Access for Enterprise Java作 ...
- 两行代码玩转Spring Data排序和分页
一:唠嗑 在实际项目中对Spring Data的各种使用相当多,简单的增删改查Spring Data提供了现成的方法,一些复杂的,我们可以在接口方法写And,Not等关键字来搞定,想写原生SQL,CQ ...
- Spring Data学习中心
Spring Data 概览 Spring Data的使命是为数据访问提供熟悉且一致的基于Spring的编程模型,同时仍保留底层数据存储的特殊特性. 它使数据访问技术,关系数据库和非关系数据库,map ...
- Spring Data REST不完全指南(一)
简介 Spring Data REST是Spring Data项目的一部分,可轻松在Spring Data存储库上构建超媒体驱动的REST Web服务. Spring Data REST 构建在 Sp ...
- 快速搭建springmvc+spring data jpa工程
一.前言 这里简单讲述一下如何快速使用springmvc和spring data jpa搭建后台开发工程,并提供了一个简单的demo作为参考. 二.创建maven工程 http://www.cnblo ...
- spring boot(五):spring data jpa的使用
在上篇文章springboot(二):web综合开发中简单介绍了一下spring data jpa的基础性使用,这篇文章将更加全面的介绍spring data jpa 常见用法以及注意事项 使用spr ...
随机推荐
- 章节十六、3-TestNG方法和类注解
一.Test Suite(测试套件) 我们通常认为一个testcase就是一个测试方法,但是会有很多的testcase,所以我们不可能把所有的testcase放到同一个测试类中,假如需要测试的页面有1 ...
- SparkSQL Adaptive Execution
转自 https://mp.weixin.qq.com/s/Oq9L3Cmc-8G9oL8dvZ5OHQ 1 背景 本文介绍的 Adaptive Execution 将可以根据执行过程中的中间数据优化 ...
- java线程池,工作窃取算法
前言 在上一篇<java线程池,阿里为什么不允许使用Executors?>中我们谈及了线程池,同时又发现一个现象,当最大线程数还没有满的时候耗时的任务全部堆积给了单个线程, 代码如下: T ...
- 程序与CPU
CPU中共有四大组件: 寄存器 控制器 运算器 时钟 寄存器:存取数值(存东西的) 控制器:负责将内存(寄存器)中的数据进行读入和写出(控制寄存器 协调者) 运算器:里面是逻辑运算单元,协助寄存器和控 ...
- mybatisX插件的使用
MybatisX 插件 快捷 mapper方法生成对应-----> mapper.xml中 :ALT +enter
- Selenium3 + Python3自动化测试系列六——等待方式
等待 一.等待是什么,为什么要等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等, 这时候,我们就需要使用等待,来判断上一步操 ...
- Unity之SDK接入(OPPO)
简介:首先介绍一下,为什么博主要选择OPPO的SDK接入呢,因为OPPO的SDK接入是目前博主发现最简单的SDK.所以,博主选择OPPO,带领大家接SDK从入门到精通 工作准备: 1.环境配置(SDK ...
- ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
报错 Traceback (most recent call last): File "D:/PyCharm 5.0.3/WorkSpace/2.NLP/2.获取数据源和规范化/4.word ...
- SCRUM的五个事件
转自:http://www.scrumcn.com/agile/scrum-knowledge-library/scrum.html#tab-id-7 Scrum 使用固定的事件来产生规律性,以此来减 ...
- E-MAZE_2019牛客暑期多校训练营(第二场)
题意 给出n行m列的迷宫0可走1不可走,有两个操作,操作1变换点(a,b)的值,操作2查询(1,a)到(n,b)的方案数 题解 设\(F[i][j]\)为第i-1行到达第i行第j列的方案数,若点\(( ...