# RocksDB集群化版 **Repository Path**: yanfanVIP/RocksDB ## Basic Information - **Project Name**: RocksDB集群化版 - **Description**: RocksDB and jGroups cluster - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 5 - **Created**: 2018-07-08 - **Last Updated**: 2022-05-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RocksDB [![Fork me on Gitee](https://gitee.com/yanfanVIP/RocksDB/widgets/widget_3.svg)](https://gitee.com/yanfanVIP/RocksDB) #### 项目介绍 RocksDB and jGroups cluster 文档地址 : #### 使用说明 1. 在项目中引入Maven中央仓库 ```xml com.gitee.yanfanvip rocksdb 1.0.0 ``` 2. 接口说明 | Modifier and Type | Method and Description | | -------------------- | ------------------------------------------------------------ | | `void` | `clear(String keyspaces)`清空keyspaces | | `boolean` | `containsKey(String keyspaces, String key)`是否存在某个数据 | | `void` | `forEach(Consumer consumer)`循环全部keyspaces | | `void` | `forEach(String keyspaces, BiConsumer consumer)`循环某个keyspaces | | `byte[]` | `get(String keyspaces, String key)`获取数据内容 | | `Row` | `getLastData(String keyspaces)`获取最后一条数据 | | `void` | `put(String keyspaces, String key, byte[] value)`put数据 | | `void` | `putAll(String keyspaces, Map datas)`批量插入数据 | | `Map` | `putAllIfChanged(String keyspaces, Map datas)`批量插入数据, 返回变化的数据 | | `boolean` | `putIfChanged(String keyspaces, String key, byte[] value)`如果数据不存在或者数据的内容有变化,则插入数据, 同时返回插入状态 如果数据存在, 并且值未发生改变, 则返回false | | `void` | `remove(String keyspaces, String key)`删除数据 | | `boolean` | `removeIfExist(String keyspaces, String key)`删除数据并返回删除状态 | 3. 单实例模式运行 ```java Database database = SingleDatabase.get(); database.put("keyspaces1", "key1", "value1".getBytes()); database.close(); ``` 4. 集群模式 特别注意, 集群模式的配置地址, 需要设置为您的内网IP地址, 不能直接配置为127.0.0.1 ```java Database database = new ClusterBuild("CLUSTER", 11201, IPHelp.getIPPorts(11201)).build(); database.put("keyspaces1", "key1", "value1".getBytes()); database.close(); ``` ​ 5. 多集群数据同步 1. 启动第一个集群 ```java Database cluster = new ClusterBuild("CLUSTER1", 18510, IPHelp.getIPPorts(18510)) .setDatabaseReceive(17500)//设置数据同步端口 //添加集群配置信息 .addAcrossClusterDispatch("CLUSTER1", IPHelp.getIPPorts(17500)) .addAcrossClusterDispatch("CLUSTER2", IPHelp.getIPPorts(17600)) .build(); ``` ​ 2. 启动第二个集群 ```java Database cluster = new ClusterBuild("CLUSTER2", 18610, IPHelp.getIPPorts(18610)) .setDatabaseReceive(17600)//设置数据同步端口 //添加集群配置信息 .addAcrossClusterDispatch("CLUSTER1", IPHelp.getIPPorts(17500)) .addAcrossClusterDispatch("CLUSTER2", IPHelp.getIPPorts(17600)) .build(); ```