import io.github.spencerpark.ijava.IJava; import io.github.spencerpark.jupyter.kernel.magic.common.Shell; IJava.getKernelInstance().getMagics().registerMagics(Shell.class); %sh asd %%loadFromPOM com.aerospike aerospike-client 5.0.0 import com.aerospike.client.AerospikeClient; AerospikeClient client = new AerospikeClient("localhost", 3000); System.out.println("Initialized the client and connected to the cluster."); import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.aerospike.client.Key; import com.aerospike.client.Bin; import com.aerospike.client.Record; import com.aerospike.client.Operation; import com.aerospike.client.Value; import com.aerospike.client.cdt.MapOperation; import com.aerospike.client.cdt.MapOrder; import com.aerospike.client.cdt.MapPolicy; import com.aerospike.client.cdt.MapWriteFlags; String mapModelSetName = "mapmodelset1"; String mapModelNamespaceName = "test"; String mapOrderKeyName = "mapOrder"; Key mapOrderKey = new Key(mapModelNamespaceName, mapModelSetName, mapOrderKeyName); String unorderedMapBinName = "uoBin"; String kOrderedMapBinName = "koBin"; String kvOrderedMapBinName = "kvoBin"; Bin bin1 = new Bin(unorderedMapBinName, mapOrderKeyName); Bin bin2 = new Bin(kOrderedMapBinName, mapOrderKeyName); Bin bin3 = new Bin(kvOrderedMapBinName, mapOrderKeyName); MapPolicy unorderedBinPolicy = new MapPolicy(); MapPolicy kOrderedBinPolicy = new MapPolicy(MapOrder.KEY_ORDERED, MapWriteFlags.DEFAULT); MapPolicy kvOrderedBinPolicy = new MapPolicy(MapOrder.KEY_VALUE_ORDERED, MapWriteFlags.DEFAULT); String stringKey0 = "b"; Integer intValue0 = 0; String stringKey1 = "z"; Integer intValue1 = 2; String stringKey2 = "c"; Integer intValue2 = 9; String stringKey3 = "a"; Integer intValue3 = 1; String stringKey4 = "yy"; Integer intValue4 = 1; Record addMapKeys = client.operate(null, mapOrderKey, MapOperation.put(unorderedBinPolicy, unorderedMapBinName, Value.get(stringKey0), Value.get(intValue0)), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(stringKey0), Value.get(intValue0)), MapOperation.put(kvOrderedBinPolicy, kvOrderedMapBinName, Value.get(stringKey0), Value.get(intValue0)), MapOperation.put(unorderedBinPolicy, unorderedMapBinName, Value.get(stringKey1), Value.get(intValue1)), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(stringKey1), Value.get(intValue1)), MapOperation.put(kvOrderedBinPolicy, kvOrderedMapBinName, Value.get(stringKey1), Value.get(intValue1)), MapOperation.put(unorderedBinPolicy, unorderedMapBinName, Value.get(stringKey2), Value.get(intValue2)), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(stringKey2), Value.get(intValue2)), MapOperation.put(kvOrderedBinPolicy, kvOrderedMapBinName, Value.get(stringKey2), Value.get(intValue2)), MapOperation.put(unorderedBinPolicy, unorderedMapBinName, Value.get(stringKey3), Value.get(intValue3)), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(stringKey3), Value.get(intValue3)), MapOperation.put(kvOrderedBinPolicy, kvOrderedMapBinName, Value.get(stringKey3), Value.get(intValue3)), MapOperation.put(unorderedBinPolicy, unorderedMapBinName, Value.get(stringKey4), Value.get(intValue4)), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(stringKey4), Value.get(intValue4)), MapOperation.put(kvOrderedBinPolicy, kvOrderedMapBinName, Value.get(stringKey4), Value.get(intValue4)) ); Record outMaps = client.get(null, mapOrderKey); System.out.println("The unordered map is: " + outMaps.getValue(unorderedMapBinName)); System.out.println("The k-ordered map is: " + outMaps.getValue(kOrderedMapBinName)); System.out.println("The kv-unordered map is also: " + outMaps.getValue(kvOrderedMapBinName)); import com.aerospike.client.cdt.ListOperation; import com.aerospike.client.cdt.ListOrder; import com.aerospike.client.cdt.ListPolicy; import com.aerospike.client.cdt.ListWriteFlags; import com.aerospike.client.cdt.ListReturnType; import com.aerospike.client.cdt.MapReturnType; import com.aerospike.client.cdt.CTX; String stringKey0 = "z"; Integer intValue0 = 26; String stringKey1 = "a"; Integer intValue1 = 1; String stringKey2 = "b"; Integer intValue2 = 2; String stringKey3 = "c"; Integer intValue3 = 3; String stringKey4 = "e"; Integer intValue4 = 5; String mapIndexAndRankKeyName = "mapIndexAndRank"; Key mapIndexAndRankKey = new Key(mapModelNamespaceName, mapModelSetName, mapIndexAndRankKeyName); String unorderedListBinName = "uoListBin"; Bin bin1 = new Bin(unorderedListBinName, mapIndexAndRankKeyName); Record addMapKeys = client.operate(null, mapIndexAndRankKey, ListOperation.clear(unorderedListBinName), ListOperation.create(unorderedListBinName, ListOrder.UNORDERED, false), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(0, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey0), Value.get(intValue0), CTX.listIndex(0)), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(1, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey1), Value.get(intValue1), CTX.listIndex(1)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey2), Value.get(intValue2), CTX.listIndex(1)), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(2, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey4), Value.get(intValue4), CTX.listIndex(2)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey1), Value.get(intValue1), CTX.listIndex(2)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey2), Value.get(intValue2), CTX.listIndex(2)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey3), Value.get(intValue3), CTX.listIndex(2)), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(3, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey3), Value.get(intValue3), CTX.listIndex(3)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey2), Value.get(intValue2), CTX.listIndex(3)), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(4, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey2), Value.get(intValue2), CTX.listIndex(4)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey3), Value.get(intValue3), CTX.listIndex(4)), MapOperation.create(unorderedListBinName, MapOrder.UNORDERED, CTX.listIndexCreate(5, ListOrder.UNORDERED, false)), MapOperation.put(unorderedBinPolicy, unorderedListBinName, Value.get(stringKey1), Value.get(intValue1), CTX.listIndex(5)) ); Record listOfMaps = client.get(null, mapIndexAndRankKey); System.out.println("The data is: " + listOfMaps.getValue(unorderedListBinName)); Record getIndexAndRank = client.operate(null, mapIndexAndRankKey, MapOperation.getByIndex(unorderedListBinName, 0, MapReturnType.KEY_VALUE, CTX.listIndex(2)), ListOperation.getByRankRange(unorderedListBinName, 0, 6, ListReturnType.VALUE) ); List indexAndRankResults = getIndexAndRank.getList(unorderedListBinName); System.out.println("The first element by index in the 3rd map in the list is:" + indexAndRankResults.get(0)); System.out.println("The maps in order from highest to lowest rank is: " + indexAndRankResults.get(1)); import java.util.List; import java.util.Map; String cardsMapKey = "cards"; List emptyCardsList = Collections.emptyList(); String cardMapKeyLast6 = "last_six"; String cardMapKeyExp = "expires"; String cardMapKeyCVV = "cvv"; String cardMapKeyZip = "zip"; String cardMapKeyDefault = "default"; Integer cardValue1Last6 = 511111; Integer cardValue1Exp = 202201; Integer cardValue1CVV = 111; Integer cardValue1Zip = 95008; Integer cardValueDefault = 1; String mapCreditCardKeyName = "mapCreditCard"; Key mapCreditCardKey = new Key(mapModelNamespaceName, mapModelSetName, mapCreditCardKeyName); Bin bin1 = new Bin(kOrderedMapBinName, mapCreditCardKeyName); Record createUserAndAddCC1 = client.operate(null, mapCreditCardKey, MapOperation.clear(kOrderedMapBinName), MapOperation.put(kOrderedBinPolicy, kOrderedMapBinName, Value.get(cardsMapKey), Value.get(emptyCardsList)), MapOperation.create(kOrderedMapBinName, MapOrder.KEY_VALUE_ORDERED, CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndexCreate(0, ListOrder.UNORDERED, false)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyLast6), Value.get(cardValue1Last6), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(0)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyExp), Value.get(cardValue1Exp), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(0)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyCVV), Value.get(cardValue1CVV), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(0)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyZip), Value.get(cardValue1Zip), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(0)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyDefault), Value.get(cardValueDefault), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(0)) ); Record getCardMap = client.get(null, mapCreditCardKey); System.out.println("The Credit Card data is: " + getCardMap.getValue(kOrderedMapBinName)); Integer cardValue2Last6 = 522222; Integer cardValue2Exp = 202202; Integer cardValue2CVV = 222; Integer cardValue2Zip = 95008; Record getDefaultCard1 = client.operate(null, mapCreditCardKey, ListOperation.getByRank(kOrderedMapBinName, -1, ListReturnType.VALUE, CTX.mapKey(Value.get(cardsMapKey))) ); System.out.println("The default card is: " + getDefaultCard1.getValue(kOrderedMapBinName)); Record addCC2 = client.operate(null, mapCreditCardKey, MapOperation.create(kOrderedMapBinName, MapOrder.KEY_VALUE_ORDERED, CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndexCreate(1, ListOrder.UNORDERED, false)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyLast6), Value.get(cardValue2Last6), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(1)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyExp), Value.get(cardValue2Exp), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(1)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyCVV), Value.get(cardValue2CVV), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(1)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyZip), Value.get(cardValue2Zip), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(1)) ); Record getCard2 = client.operate(null, mapCreditCardKey, ListOperation.getByIndex(kOrderedMapBinName, 1, ListReturnType.VALUE, CTX.mapKey(Value.get(cardsMapKey))) ); Record getDefaultCard2 = client.operate(null, mapCreditCardKey, ListOperation.getByRank(kOrderedMapBinName, -1, ListReturnType.VALUE, CTX.mapKey(Value.get(cardsMapKey))) ); Record makeCard2TheDefault = client.operate(null, mapCreditCardKey, MapOperation.removeByKey(kOrderedMapBinName, Value.get(cardMapKeyDefault), MapReturnType.NONE, CTX.mapKey(Value.get(cardsMapKey)), CTX.listRank(0)), MapOperation.put(kvOrderedBinPolicy, kOrderedMapBinName, Value.get(cardMapKeyDefault), Value.get(cardValueDefault), CTX.mapKey(Value.get(cardsMapKey)), CTX.listIndex(1)) ); Record getDefaultCard3 = client.operate(null, mapCreditCardKey, ListOperation.getByRank(kOrderedMapBinName, -1, ListReturnType.VALUE, CTX.mapKey(Value.get(cardsMapKey))) ); System.out.println("Added new card: " + getCard2.getValue(kOrderedMapBinName)); System.out.println("The default card is still: " + getDefaultCard2.getValue(kOrderedMapBinName)); System.out.println("Changed the default card, the new default is: " + getDefaultCard3.getValue(kOrderedMapBinName)); import com.aerospike.client.policy.InfoPolicy; InfoPolicy infoPolicy = new InfoPolicy(); client.truncate(infoPolicy, mapModelNamespaceName, mapModelSetName, null); System.out.println("Set Truncated."); client.close(); System.out.println("Server connection closed.");