Java调用Geode

来源:互联网 发布:手机找不到网络连接 编辑:程序博客网 时间:2024/06/06 04:12

Goede序列化

Geode提供了Java序列化之外的序列化选项,为数据存储,传输和语言类型提供更高的性能和更大的灵活性。 
Geode DataSerialization 比PDXSerialization快 25%,但使用PDX序列化可以减少反序列化的成本。 
Geode 提供的序列化方式(DataSerialization和PDXSerialization),不支持对象的循环引用,如果多次引用相同的对象,则会将每个引用进行序列化,反序列化会生成对象的多个副本。在这种情况下,Java序列化对象一次,当对象进行反序列化时,它将生成具有多个引用的对象的实例。 

Java连接Geode示例

依赖JAR:

    <dependency>      <groupId>org.apache.geode</groupId>      <artifactId>geode-core</artifactId>      <version>1.1.0</version>    </dependency>    <dependency>      <groupId>com.gemstone.gemfire</groupId>      <artifactId>gemfire</artifactId>      <version>8.2.2</version>    </dependency>    <dependency>      <groupId>org.apache.geode</groupId>      <artifactId>geode-json</artifactId>      <version>1.1.0</version>    </dependency>    <dependency>      <groupId>org.apache.geode</groupId>      <artifactId>geode-common</artifactId>      <version>1.1.0</version>    </dependency>


代码示例:

public class UserEntity implements Serializable{    private int id;    private int age;    private String name;    private Date registerdDate;        //getter and setter...}public class DataClient {    private final static Logger logger  = Logger.getLogger(DataClient.class);    Region region = null;    @Before    public void init(){        ClientCache cache = new ClientCacheFactory().addPoolLocator("db", 10334).create();        ClientRegionFactory rf = cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY);        region = rf.create( "user");    }    @Test    public void saveUserEntity(){        region.putAll(newUserEntity(10));    }    @Test    public void clear(){        region.clear();    }    @Test    public void delele(){        region.remove("");    }    @Test    public void update(){        Object obj = region.get("108");        Map<String, UserEntity> map = new HashMap<String, UserEntity>();        UserEntity data= ((UserEntity)obj);        data.setAge(12);        map.put("108",data);        region.putAll(map);    }    @Test    public void getUserEntity(){        try {            Object objList = region.query("select * from /user u where u.age > 10");            Object obj = region.get("108");            if(objList != null && objList instanceof ResultsBag){                Iterator iter = ((ResultsBag) objList).iterator();                while(iter.hasNext()){                    UserEntity UserEntity = (UserEntity) iter.next();                    System.out.println("UserEntity"+UserEntity);                }            }            if(obj != null && obj instanceof UserEntity){                System.out.println("UserEntity"+(UserEntity)obj);            }        }catch (Exception e){            logger.error("error occured.", e);        }    }    @After    public void done(){        region.close();    }    private Map<Integer, UserEntity> newUserEntity(int size){        Map<Integer, UserEntity> map = new HashMap<Integer, UserEntity>();        for (int i = 0; i < size; i++) {            int id = i+100;            map.put(id,new UserEntity(id,10+i,"username:"+id,new Date()));        }        return map;    }}

Geode Query

查询示例

 // Identify your query string. String queryString = "SELECT * FROM /exampleRegion"; // Get QueryService from Cache. QueryService queryService = cache.getQueryService(); // Create the Query Object. Query query = queryService.newQuery(queryString); // Execute Query locally. Returns results set. SelectResults results = (SelectResults)query.execute(); // Find the Size of the ResultSet. int size = results.size(); // Iterate through your ResultSet. Portfolio p = (Portfolio)results.iterator().next(); /* Region containing Portfolio object. */

查询语法

WHERE 语法 
SELECT * FROM /user WHERE name=‘username’; 

LIKE 语法 
SELECT * FROM /user WHERE name like ‘use%’; 
SELECT * FROM /user WHERE name like ‘_use_’; 

添加表别名 
SELECT u.id,u.name FROM /user u WHERE u.name=‘username’; 

DISTINCT 
SELECT DISTINCT u.name FROM /user u 

逻辑操作符 AND,OR,NOT 
SELECT * FROM /user WHERE id>4 and id<9 and not id = 6 

其它比较操作 
=,<>,!=,<,⇐,>,>= 
IN,NOT IN 
SELECT * FROM /user WHERE NOT (ID IN SET(1,2)) 

LIMIT 
SELECT * FROM /user WHERE id>0 LIMIT 10 

COUNT 
SELECT COUNT(*) FROM /user WHERE ID > 0 LIMIT 50 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 手机低于4.4版本怎么办才能恢复 263云通信密码忘了怎么办 有信电话拉黑了怎么办 微信手机充值冲错了怎么办 国通石油卡怎么办红卡 善融商城有假货怎么办 中百购物卡丢了怎么办 cncbk被骗25万该怎么办 中银e贷额度冻结怎么办 招行抵押贷循环额度怎么办 小额钱袋被拒了怎么办 银行需要提供消费贷款发票怎么办 中银e贷款逾期怎么办 按揭房不想要了怎么办 房贷不想还了怎么办 融e借没有u盾怎么办 窗式空调声音大怎么办 瑞得卡过期了怎么办 对公账号转错了怎么办 中银e令丢了怎么办 中银e贷到期了怎么办 招行信用卡附属卡怎么办 华普超市购物卡怎么办 公司发超市购物卡怎么办 物美购物卡丢了怎么办 淘宝买肯德基电子券留错号码怎么办 京东e卡过期了怎么办 京东e卡绑定错了怎么办 手机换号京东账号绑的银行卡怎么办 京东金条激活失败怎么办 京东买的k3不能激活怎么办 优购手机光黑屏怎么办 优购手机忘记手势密码怎么办 消费卡过期了钱怎么办 超市卡过期了钱怎么办 宜家购物卡的钱怎么办 武商购物卡过期怎么办 丹尼斯卡过期了怎么办 联华ok卡过期了怎么办 汉购通过期了怎么办 天猫退货要检测报告怎么办