Aerospike学习 java语言操作Aerospike

来源:互联网 发布:大数据的关键技术 编辑:程序博客网 时间:2024/05/04 07:23

关于aerospike(一下简称as)是什么,我不再说了,关于as怎么安装启动我也不再赘述,这里有一篇文章给大家参考:Linux下安装Aerospike。下面是java操作as的详细步骤,主要是参考官网来做的。
首先说一下as里面的存储数据的一些名词:主要是Policy,Namespace,Set,Key,Bin,Record。
Policy:策略。暂时就了解到是为as操作里面的数据时设置一些策略。
NameSpace:命名空间。类似于RDBMS中的schema的概念。
Set:类似于表的概念。
Key:类似于行的概念。
Bin:类似于列的概念。
Record:记录,一个Key和一个Bin可以确认一个Record。
这里所有的我只能用“类似”来描述,因为我觉得这样比较容易分清和记住。
as中的namespace是需要再配置文件中配置的:
编辑aerospike.conf
新建一个见test的namespace

环境:
- MAVEN
- IDEA
- VMware+Linux
- as

首先新建maven项目,pom文件如下

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.yjw</groupId>    <artifactId>aerospikedemo</artifactId>    <version>1.0-SNAPSHOT</version>    <dependencies>        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.17</version>        </dependency>        <!-- https://mvnrepository.com/artifact/junit/junit -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>        </dependency>        <!--aerospike客户端-->        <dependency>            <groupId>com.aerospike</groupId>            <artifactId>aerospike-client</artifactId>            <version>[3.0.0,)</version>        </dependency>    </dependencies></project>

主要是要引入as的客户端。下面新建一个测试类操作as。

/** Copyright (c) 2016 www.bsfit.com.cn All Rights Reserved.*/import com.aerospike.client.AerospikeClient;import com.aerospike.client.Bin;import com.aerospike.client.Key;import com.aerospike.client.Record;import com.aerospike.client.policy.WritePolicy;import org.apache.log4j.Logger;import org.junit.After;import org.junit.Before;import org.junit.Test;/** * The type Aerospike test. * * @author: YeJunwei Date: 2016/11/7 Time: 20:42 */public class AerospikeTest {    private Logger logger= Logger.getLogger(AerospikeTest.class);    /**     * 新建一个as客户端,构造方法:     * AerospikeClient(String hostname, int port)     * Initialize Aerospike client.     */    AerospikeClient as = new AerospikeClient("192.168.147.134",3000);    /**     * The Write policy.     *///新建一个写入策略    WritePolicy writePolicy = new WritePolicy();    /**     * The Key.     *///新建一个key,namespace为test,set为mySet,根据文档这个myKey并不是这个key的名字    Key key = new Key("test","mySet","myKey");    /**     * Before.     */    @Before    public void before(){        logger.error("this is before method");        writePolicy.timeout=50;// 50 millisecond timeout.    }    /**     * As writing value.     * 向同一个key中写入两个不同的bin,logger输出里面的record     * 如果bin的名字一样,那么前一个会被后一个所覆盖,所以写入和修改都是同一个方法     */    @Test    public void ASWritingValue(){        Bin bin = new Bin("myBin","myValue");        Bin bin2 = new Bin("myBin2","myValue2");        as.put(null,key,bin);        as.put(null,key,bin2);        logger.info(as.get(null,key));    }    /**     * As del bin.     * 删除key中的名为“mybin”的bin     */    @Test    public void  ASDelBin(){        Bin bin = Bin.asNull("myBin");        as.put(null,key,bin);        logger.info(as.get(null,key));    }    /**     * Get record.     * 根据key和申明的bin的名字来获取指定的record     */    @Test    public void getRecord(){        //得到所有record        Record recordAll=as.get(null,key);        Record record1=as.get(null,key,"myBin");        Record record2=as.get(null,key,"myBin2");        Record records=as.get(null,key,"myBin","myBin2");        logger.info(recordAll);        logger.info(record1);        logger.info(record2);        logger.info(records);    }    /**     * Del records.     * 删除records,官网的解释是这样的:This example deletes the key mykey from the namespace test in the set myset。     */    @Test    public void delRecords(){        as.delete(null,key);    }    /**     * After.     */    @After    public void after(){        logger.error("this is after method");    }}
1 0
原创粉丝点击