Aerospike API操作Map
Aerospike是一個高效能、可擴充套件、可靠性強的NoSQL解決方案,支援RAM和SSD作為儲存介質,並專門針對SSD特殊優化,廣泛應用於實時競價等實時計算領域。官方保證99%的操作在1ms內完成,並提供叢集資料自動Rebalance、叢集感知客戶端等功能,且支援超大規模資料集(100T級別)的儲存。
作為KV儲存,Aerospike提供多種資料型別,其操作方式和Redis比較類似。除基礎功能之外,Aerospike還支援AMC控制檯、API等多種監控方式,有叢集QPS、健康度、負載等多項監控指標,對運維比較友好。支援叢集內資料的自動Rebalance,和Redis叢集方案相比,維護成本下降不少,高負載下AS比redis略快,參考https://www.infoq.cn/article/2015%2F02%2Faerospikedb-redis-aws-nosql
Aerospike一般操作可以通過官方渠道獲取到例子資訊
https://github.com/aerospike/aerospike-client-java/tree/master/examples
下面是官方沒有的map操作例子:
import com.aerospike.client.AerospikeClient;
import com.aerospike.client.Key;
import com.aerospike.client.Record;
import com.aerospike.client.Value;
import com.aerospike.client.cdt.MapOperation;
import com.aerospike.client.cdt.MapPolicy;
import com.aerospike.client.cdt.MapReturnType;
import com.aerospike.client.policy.WritePolicy;
import java.util.List;
public class AerospikeApiTest {
public static void main(String args[]){
final AerospikeClient client = new AerospikeClient("127.0.0.1", 3000);
WritePolicy policy = new WritePolicy();
policy.socketTimeout = 50; // 50 millisecond timeout.
Key key = new Key("test", "demoset", "mapkey");
//map中寫入1個值
Record record = client.operate(policy, key, MapOperation.put(MapPolicy.Default, "mapbin", Value.get("key4"), Value.get("val1")));
//map中一次寫入2個值
record = client.operate(policy, key, MapOperation.put(MapPolicy.Default, "mapbin", Value.get("key3"), Value.get("val1")),
MapOperation.put(MapPolicy.Default, "mapbin", Value.get("key4"), Value.get("val1")));
//刪除map中的key,並查詢map的長度
List list = client.operate(policy, key, MapOperation.removeByKey("mapbin", Value.get("key4"), MapReturnType.COUNT),
MapOperation.size("mapbin")).getList("mapbin");
System.out.println(list.get(1));
//如果為空map刪除資料
if (((Long)list.get(1)) == 0) {
client.delete(policy, key);
}
}
}
上面程式碼在高併發下,刪除可能會有問題,如刪除某個key時,正好有對key的寫操作,就會造成誤刪,歡迎留言更嚴謹的刪除方案。
覺得不錯掃頭像,關注我的公眾號,獲取更多大資料技能
相關文章
- Scala操作Map
- aerospike 使用總結ROS
- 使用Google Map API v2GoAPI
- SYS_OP_MAP_NONNULL操作Null
- AeroSpike安裝及啟動ROS
- aerospike特點簡單描述ROS
- vector 與map的下標操作
- Java Map和List常見操作Java
- 陣列的reduce操作+物件陣列的map操作陣列物件
- HBase篇--HBase操作Api和Java操作Hbase相關ApiAPIJava
- redis 常用api操作RedisAPI
- Java API操作ESJavaAPI
- Aerospike rd->rec_props格式ROS
- Golang 基礎學習之Go map操作Golang
- Scala—— Set、Map、Tuple、佇列操作實戰佇列
- 【轉】C++ map的基本操作和使用C++
- Apache Curator 操作Zookeeper apiApacheAPI
- 使用 Java API 操作 elasticsearchJavaAPIElasticsearch
- Java map 詳解 - 用法、遍歷、排序、常用API等Java排序API
- JDK9新API:List.of();Map.of();Set.of();JDKAPI
- 你只會用 map.put?試試 Java 8 compute ,操作 Map 更輕鬆!Java
- java內省api的操作JavaAPI
- Java API 操作Docker淺談JavaAPIDocker
- JavaScript操作DOM常用的APIJavaScriptAPI
- ElasticSearch 2.3.3 java API操作二ElasticsearchJavaAPI
- 用JAVA的API操作HBASEJavaAPI
- java操作redis。jedis使用apiJavaRedisAPI
- Java 封裝 HDFS API 操作Java封裝API
- RN API基礎操作篇API
- Hadoop(十)HDFS API操作HadoopAPI
- GuavaCache、EVCache、Tair、Aerospike 快取框架比較GuavaAIROS快取框架
- Java 8 中 Map 騷操作之 merge() 的用法Java
- Golang操作結構體、Map轉化為JSONGolang結構體JSON
- python-python的sao操作 map reduce filterPythonFilter
- zabbix 操作 API 用例小記API
- 剪貼簿操作 Clipboard API 教程API
- 操作solr replication的API總結SolrAPI
- JavaScript 操作 DOM 常用 API 總結JavaScriptAPI