diff --git a/src/main/java/icu/funkye/redispike/handler/RedisCommandHandler.java b/src/main/java/icu/funkye/redispike/handler/RedisCommandHandler.java index 1431a7d..f558cbf 100644 --- a/src/main/java/icu/funkye/redispike/handler/RedisCommandHandler.java +++ b/src/main/java/icu/funkye/redispike/handler/RedisCommandHandler.java @@ -16,38 +16,36 @@ */ package icu.funkye.redispike.handler; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; import java.util.concurrent.ForkJoinPool; import com.alipay.remoting.CommandCode; import com.alipay.remoting.CommandHandler; import com.alipay.remoting.RemotingContext; import com.alipay.remoting.RemotingProcessor; import icu.funkye.redispike.handler.process.impl.GetRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HDelRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HExistsRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HGetAllRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HGetRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HIncrbyRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HIncrbyfloatRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HMgetRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HSetRequestProcessor; -import icu.funkye.redispike.handler.process.impl.HValsRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HDelRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HExistsRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HGetAllRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HGetRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HIncrbyRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HIncrbyfloatRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HLenRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HMgetRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HSetRequestProcessor; +import icu.funkye.redispike.handler.process.impl.hash.HValsRequestProcessor; import icu.funkye.redispike.handler.process.impl.KeysRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SCardRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SPopRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SRandmemberRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SRemRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SCardRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SPopRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SRandmemberRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SRemRequestProcessor; import icu.funkye.redispike.handler.process.impl.SetRequestProcessor; import icu.funkye.redispike.handler.process.impl.CommandRequestProcessor; import icu.funkye.redispike.handler.process.impl.DelRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SAddRequestProcessor; -import icu.funkye.redispike.handler.process.impl.SMembersRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SAddRequestProcessor; +import icu.funkye.redispike.handler.process.impl.set.SMembersRequestProcessor; import icu.funkye.redispike.protocol.RedisRequest; import icu.funkye.redispike.protocol.response.BulkResponse; import org.slf4j.Logger; @@ -100,6 +98,8 @@ public RedisCommandHandler() { processorMap.put(hIncrbyRequestProcessor.getCmdCode().value(), hIncrbyRequestProcessor); HIncrbyfloatRequestProcessor hIncrbyfloatRequestProcessor = new HIncrbyfloatRequestProcessor(); processorMap.put(hIncrbyfloatRequestProcessor.getCmdCode().value(), hIncrbyfloatRequestProcessor); + HLenRequestProcessor hLenRequestProcessor = new HLenRequestProcessor(); + processorMap.put(hLenRequestProcessor.getCmdCode().value(), hLenRequestProcessor); } @Override diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HDelRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HDelRequestProcessor.java similarity index 97% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HDelRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HDelRequestProcessor.java index 62dd2d0..877cae5 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HDelRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HDelRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import java.util.ArrayList; import java.util.List; @@ -30,7 +30,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HDelRequest; +import icu.funkye.redispike.protocol.request.hash.HDelRequest; import icu.funkye.redispike.util.IntegerUtils; public class HDelRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HExistsRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HExistsRequestProcessor.java similarity index 94% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HExistsRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HExistsRequestProcessor.java index aa7a09b..05266cc 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HExistsRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HExistsRequestProcessor.java @@ -14,9 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; - -import java.util.Optional; +package icu.funkye.redispike.handler.process.impl.hash; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; @@ -27,7 +25,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HExistsRequest; +import icu.funkye.redispike.protocol.request.hash.HExistsRequest; import icu.funkye.redispike.util.IntegerUtils; public class HExistsRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HGetAllRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetAllRequestProcessor.java similarity index 91% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HGetAllRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetAllRequestProcessor.java index a7e8300..f3ac8b7 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HGetAllRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetAllRequestProcessor.java @@ -14,20 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; import com.aerospike.client.Record; import com.aerospike.client.listener.RecordListener; import com.alipay.remoting.RemotingContext; -import com.alipay.sofa.common.profile.StringUtil; import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HGetAllRequest; -import icu.funkye.redispike.protocol.request.HGetRequest; +import icu.funkye.redispike.protocol.request.hash.HGetAllRequest; import icu.funkye.redispike.util.IntegerUtils; public class HGetAllRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HGetRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetRequestProcessor.java similarity index 94% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HGetRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetRequestProcessor.java index 7acda0a..721e1aa 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HGetRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HGetRequestProcessor.java @@ -14,19 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; import com.aerospike.client.Record; import com.aerospike.client.listener.RecordListener; import com.alipay.remoting.RemotingContext; -import com.alipay.sofa.common.profile.StringUtil; import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HGetRequest; +import icu.funkye.redispike.protocol.request.hash.HGetRequest; import icu.funkye.redispike.util.IntegerUtils; public class HGetRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HIncrbyRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HIncrbyRequestProcessor.java similarity index 86% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HIncrbyRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HIncrbyRequestProcessor.java index b1bf313..91431cc 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HIncrbyRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HIncrbyRequestProcessor.java @@ -14,10 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; - -import java.util.ArrayList; -import java.util.List; +package icu.funkye.redispike.handler.process.impl.hash; import com.aerospike.client.AerospikeException; import com.aerospike.client.Bin; @@ -25,17 +22,13 @@ import com.aerospike.client.Operation; import com.aerospike.client.Record; import com.aerospike.client.listener.RecordListener; -import com.aerospike.client.listener.WriteListener; -import com.aerospike.client.policy.RecordExistsAction; import com.aerospike.client.policy.WritePolicy; import com.alipay.remoting.RemotingContext; import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HIncrbyRequest; -import icu.funkye.redispike.protocol.request.HSetRequest; -import icu.funkye.redispike.protocol.request.conts.Operate; +import icu.funkye.redispike.protocol.request.hash.HIncrbyRequest; import icu.funkye.redispike.util.IntegerUtils; public class HIncrbyRequestProcessor extends AbstractRedisRequestProcessor { @@ -44,7 +37,6 @@ public class HIncrbyRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HLenRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HLenRequestProcessor.java new file mode 100644 index 0000000..c6c2986 --- /dev/null +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HLenRequestProcessor.java @@ -0,0 +1,68 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package icu.funkye.redispike.handler.process.impl.hash; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.aerospike.client.AerospikeException; +import com.aerospike.client.Bin; +import com.aerospike.client.Key; +import com.aerospike.client.Language; +import com.aerospike.client.Record; +import com.aerospike.client.listener.DeleteListener; +import com.aerospike.client.listener.ExecuteListener; +import com.aerospike.client.listener.RecordListener; +import com.aerospike.client.listener.WriteListener; +import com.aerospike.client.task.RegisterTask; +import com.alipay.remoting.RemotingContext; + +import icu.funkye.redispike.factory.AeroSpikeClientFactory; +import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; +import icu.funkye.redispike.protocol.RedisRequestCommandCode; +import icu.funkye.redispike.protocol.request.hash.HDelRequest; +import icu.funkye.redispike.protocol.request.hash.HLenRequest; +import icu.funkye.redispike.util.IntegerUtils; + +public class HLenRequestProcessor extends AbstractRedisRequestProcessor { + + public HLenRequestProcessor() { + this.cmdCode = new RedisRequestCommandCode(IntegerUtils.hashCodeToShort(HLenRequest.class.hashCode())); + RegisterTask task = client.register(null, this.getClass().getClassLoader(), "lua/hlen.lua", "hlen.lua", + Language.LUA); + task.waitTillComplete(); + } + + @Override + public void handle(RemotingContext ctx, HLenRequest request) { + Key key = new Key(AeroSpikeClientFactory.namespace, AeroSpikeClientFactory.set, request.getKey()); + client.execute(AeroSpikeClientFactory.eventLoops.next(), new ExecuteListener() { + @Override + public void onSuccess(Key key, Object obj) { + request.setResponse(obj.toString()); + write(ctx, request); + } + + @Override + public void onFailure(AerospikeException exception) { + logger.error(exception.getMessage(), exception); + write(ctx, request); + } + }, client.getWritePolicyDefault(), key, "hlen", "hash_count_bins"); + } +} diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HMgetRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HMgetRequestProcessor.java similarity index 95% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HMgetRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HMgetRequestProcessor.java index 72205b6..9bf9001 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HMgetRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HMgetRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import java.util.Optional; import com.aerospike.client.AerospikeException; @@ -26,7 +26,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HMgetRequest; +import icu.funkye.redispike.protocol.request.hash.HMgetRequest; import icu.funkye.redispike.util.IntegerUtils; public class HMgetRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HSetRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HSetRequestProcessor.java similarity index 96% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HSetRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HSetRequestProcessor.java index 1bffd73..10ab33d 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HSetRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HSetRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import java.util.ArrayList; import java.util.List; @@ -29,7 +29,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HSetRequest; +import icu.funkye.redispike.protocol.request.hash.HSetRequest; import icu.funkye.redispike.protocol.request.conts.Operate; import icu.funkye.redispike.util.IntegerUtils; diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/HValsRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HValsRequestProcessor.java similarity index 95% rename from src/main/java/icu/funkye/redispike/handler/process/impl/HValsRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/hash/HValsRequestProcessor.java index eebe20c..f2e2ae2 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/HValsRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/hash/HValsRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.hash; import java.util.Optional; import com.aerospike.client.AerospikeException; @@ -26,7 +26,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HValsRequest; +import icu.funkye.redispike.protocol.request.hash.HValsRequest; import icu.funkye.redispike.util.IntegerUtils; public class HValsRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SAddRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SAddRequestProcessor.java similarity index 95% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SAddRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SAddRequestProcessor.java index dc86731..25106fc 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SAddRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SAddRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.set; import java.util.ArrayList; import java.util.List; @@ -29,7 +29,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.SAddRequest; +import icu.funkye.redispike.protocol.request.set.SAddRequest; import icu.funkye.redispike.util.IntegerUtils; public class SAddRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SCardRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SCardRequestProcessor.java similarity index 92% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SCardRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SCardRequestProcessor.java index 4cb7595..1098c77 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SCardRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SCardRequestProcessor.java @@ -14,12 +14,11 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.set; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; import com.aerospike.client.Language; -import com.aerospike.client.Value; import com.aerospike.client.listener.ExecuteListener; import com.aerospike.client.task.RegisterTask; import com.alipay.remoting.RemotingContext; @@ -27,8 +26,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.SCardRequest; -import icu.funkye.redispike.protocol.request.SRemRequest; +import icu.funkye.redispike.protocol.request.set.SCardRequest; import icu.funkye.redispike.util.IntegerUtils; public class SCardRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SMembersRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SMembersRequestProcessor.java similarity index 95% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SMembersRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SMembersRequestProcessor.java index 3983d7b..d1751c8 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SMembersRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SMembersRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.set; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; @@ -25,7 +25,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.SMembersRequest; +import icu.funkye.redispike.protocol.request.set.SMembersRequest; import icu.funkye.redispike.util.IntegerUtils; public class SMembersRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SPopRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SPopRequestProcessor.java similarity index 96% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SPopRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SPopRequestProcessor.java index 993edd7..1c42d04 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SPopRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SPopRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.set; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; @@ -27,7 +27,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.SPopRequest; +import icu.funkye.redispike.protocol.request.set.SPopRequest; import icu.funkye.redispike.util.IntegerUtils; public class SPopRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SRandmemberRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SRandmemberRequestProcessor.java similarity index 95% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SRandmemberRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SRandmemberRequestProcessor.java index bb67e71..da5171e 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SRandmemberRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SRandmemberRequestProcessor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; +package icu.funkye.redispike.handler.process.impl.set; import com.aerospike.client.AerospikeException; import com.aerospike.client.Key; @@ -27,7 +27,7 @@ import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.SRandmemberRequest; +import icu.funkye.redispike.protocol.request.set.SRandmemberRequest; import icu.funkye.redispike.util.IntegerUtils; public class SRandmemberRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/handler/process/impl/SRemRequestProcessor.java b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SRemRequestProcessor.java similarity index 85% rename from src/main/java/icu/funkye/redispike/handler/process/impl/SRemRequestProcessor.java rename to src/main/java/icu/funkye/redispike/handler/process/impl/set/SRemRequestProcessor.java index ea735cc..627d5b8 100644 --- a/src/main/java/icu/funkye/redispike/handler/process/impl/SRemRequestProcessor.java +++ b/src/main/java/icu/funkye/redispike/handler/process/impl/set/SRemRequestProcessor.java @@ -14,30 +14,20 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.handler.process.impl; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +package icu.funkye.redispike.handler.process.impl.set; import com.aerospike.client.AerospikeException; -import com.aerospike.client.Bin; import com.aerospike.client.Key; import com.aerospike.client.Language; -import com.aerospike.client.Record; import com.aerospike.client.Value; -import com.aerospike.client.listener.DeleteListener; import com.aerospike.client.listener.ExecuteListener; -import com.aerospike.client.listener.RecordListener; -import com.aerospike.client.listener.WriteListener; import com.aerospike.client.task.RegisterTask; import com.alipay.remoting.RemotingContext; import icu.funkye.redispike.factory.AeroSpikeClientFactory; import icu.funkye.redispike.handler.process.AbstractRedisRequestProcessor; import icu.funkye.redispike.protocol.RedisRequestCommandCode; -import icu.funkye.redispike.protocol.request.HDelRequest; -import icu.funkye.redispike.protocol.request.SRemRequest; +import icu.funkye.redispike.protocol.request.set.SRemRequest; import icu.funkye.redispike.util.IntegerUtils; public class SRemRequestProcessor extends AbstractRedisRequestProcessor { diff --git a/src/main/java/icu/funkye/redispike/protocol/RedisCommandDecoder.java b/src/main/java/icu/funkye/redispike/protocol/RedisCommandDecoder.java index 8c515dd..1c1911a 100644 --- a/src/main/java/icu/funkye/redispike/protocol/RedisCommandDecoder.java +++ b/src/main/java/icu/funkye/redispike/protocol/RedisCommandDecoder.java @@ -22,22 +22,23 @@ import java.util.Optional; import java.util.concurrent.CountDownLatch; import com.alipay.remoting.CommandDecoder; -import icu.funkye.redispike.protocol.request.HDelRequest; -import icu.funkye.redispike.protocol.request.HExistsRequest; -import icu.funkye.redispike.protocol.request.HGetAllRequest; -import icu.funkye.redispike.protocol.request.HGetRequest; -import icu.funkye.redispike.protocol.request.HIncrbyRequest; -import icu.funkye.redispike.protocol.request.HIncrbyfloatRequest; -import icu.funkye.redispike.protocol.request.HMgetRequest; -import icu.funkye.redispike.protocol.request.HSetRequest; -import icu.funkye.redispike.protocol.request.HValsRequest; +import icu.funkye.redispike.protocol.request.hash.HDelRequest; +import icu.funkye.redispike.protocol.request.hash.HExistsRequest; +import icu.funkye.redispike.protocol.request.hash.HGetAllRequest; +import icu.funkye.redispike.protocol.request.hash.HGetRequest; +import icu.funkye.redispike.protocol.request.hash.HIncrbyRequest; +import icu.funkye.redispike.protocol.request.hash.HIncrbyfloatRequest; +import icu.funkye.redispike.protocol.request.hash.HLenRequest; +import icu.funkye.redispike.protocol.request.hash.HMgetRequest; +import icu.funkye.redispike.protocol.request.hash.HSetRequest; +import icu.funkye.redispike.protocol.request.hash.HValsRequest; import icu.funkye.redispike.protocol.request.KeysRequest; -import icu.funkye.redispike.protocol.request.SAddRequest; -import icu.funkye.redispike.protocol.request.SCardRequest; -import icu.funkye.redispike.protocol.request.SMembersRequest; -import icu.funkye.redispike.protocol.request.SPopRequest; -import icu.funkye.redispike.protocol.request.SRandmemberRequest; -import icu.funkye.redispike.protocol.request.SRemRequest; +import icu.funkye.redispike.protocol.request.set.SAddRequest; +import icu.funkye.redispike.protocol.request.set.SCardRequest; +import icu.funkye.redispike.protocol.request.set.SMembersRequest; +import icu.funkye.redispike.protocol.request.set.SPopRequest; +import icu.funkye.redispike.protocol.request.set.SRandmemberRequest; +import icu.funkye.redispike.protocol.request.set.SRemRequest; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.DecoderException; @@ -127,6 +128,9 @@ private AbstractRedisRequest convert2RedisRequest(List params, boolea return new HValsRequest(params.get(1), flush); case "hexists": return new HExistsRequest(params.get(1), params.get(2), flush); + case "hlen": + params.remove(0); + return new HLenRequest(params, flush); case "scard": return new SCardRequest(params.get(1), flush); case "sadd": diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HDelRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HDelRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HDelRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HDelRequest.java index d72dd47..6d1c48c 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HDelRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HDelRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import java.util.HashSet; import java.util.List; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HExistsRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HExistsRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HExistsRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HExistsRequest.java index 58ac8f1..4599d61 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HExistsRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HExistsRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import com.alipay.remoting.util.StringUtils; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HGetAllRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HGetAllRequest.java similarity index 96% rename from src/main/java/icu/funkye/redispike/protocol/request/HGetAllRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HGetAllRequest.java index d276944..312f3b8 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HGetAllRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HGetAllRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import java.util.ArrayList; import icu.funkye.redispike.protocol.AbstractRedisRequest; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HGetRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HGetRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HGetRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HGetRequest.java index 0f0deb9..d15e0ca 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HGetRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HGetRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import com.alipay.remoting.util.StringUtils; import icu.funkye.redispike.protocol.AbstractRedisRequest; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HIncrbyRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HIncrbyRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyRequest.java index 9dde07b..07b697f 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HIncrbyRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import icu.funkye.redispike.protocol.AbstractRedisRequest; import icu.funkye.redispike.protocol.RedisResponse; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HIncrbyfloatRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyfloatRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HIncrbyfloatRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyfloatRequest.java index e2668d0..0efde30 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HIncrbyfloatRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HIncrbyfloatRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import icu.funkye.redispike.protocol.AbstractRedisRequest; import icu.funkye.redispike.protocol.RedisResponse; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/hash/HLenRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HLenRequest.java new file mode 100644 index 0000000..76f2335 --- /dev/null +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HLenRequest.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package icu.funkye.redispike.protocol.request.hash; + +import java.util.List; + +import icu.funkye.redispike.protocol.AbstractRedisRequest; +import icu.funkye.redispike.protocol.RedisResponse; +import icu.funkye.redispike.protocol.response.IntegerResponse; + +public class HLenRequest extends AbstractRedisRequest { + + String key; + + IntegerResponse response = new IntegerResponse(); + + public HLenRequest(List params, boolean flush) { + this.flush = flush; + this.key = params.remove(0); + } + + @Override + public void setResponse(String data) { + this.response.setData(data); + } + + @Override + public RedisResponse getResponse() { + return response; + } + + public String getKey() { + return key; + } + + public void setResponse(IntegerResponse response) { + this.response = response; + } + +} diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HMgetRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HMgetRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HMgetRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HMgetRequest.java index 2d0e50b..dde9c62 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HMgetRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HMgetRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HSetRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HSetRequest.java similarity index 98% rename from src/main/java/icu/funkye/redispike/protocol/request/HSetRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HSetRequest.java index d9d0802..5360ea7 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HSetRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HSetRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import java.util.List; import java.util.Map; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/HValsRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/hash/HValsRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/HValsRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/hash/HValsRequest.java index 84e0b41..01b5b26 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/HValsRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/hash/HValsRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.hash; import java.util.ArrayList; import com.alipay.remoting.util.StringUtils; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SAddRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SAddRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/SAddRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SAddRequest.java index 2ef1bdc..156aaac 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SAddRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SAddRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import java.util.HashSet; import java.util.List; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SCardRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SCardRequest.java similarity index 96% rename from src/main/java/icu/funkye/redispike/protocol/request/SCardRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SCardRequest.java index fdc6d06..336f06d 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SCardRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SCardRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import icu.funkye.redispike.protocol.AbstractRedisRequest; import icu.funkye.redispike.protocol.RedisResponse; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SMembersRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SMembersRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/SMembersRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SMembersRequest.java index 73a7be3..485da37 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SMembersRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SMembersRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import java.util.ArrayList; import icu.funkye.redispike.protocol.AbstractRedisRequest; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SPopRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SPopRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/SPopRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SPopRequest.java index e1372e5..d2175fc 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SPopRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SPopRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import java.util.ArrayList; import java.util.concurrent.CountDownLatch; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SRandmemberRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SRandmemberRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/SRandmemberRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SRandmemberRequest.java index 38d403b..6e15de6 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SRandmemberRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SRandmemberRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import java.util.ArrayList; import java.util.concurrent.CountDownLatch; diff --git a/src/main/java/icu/funkye/redispike/protocol/request/SRemRequest.java b/src/main/java/icu/funkye/redispike/protocol/request/set/SRemRequest.java similarity index 97% rename from src/main/java/icu/funkye/redispike/protocol/request/SRemRequest.java rename to src/main/java/icu/funkye/redispike/protocol/request/set/SRemRequest.java index ed4da13..5c794ca 100644 --- a/src/main/java/icu/funkye/redispike/protocol/request/SRemRequest.java +++ b/src/main/java/icu/funkye/redispike/protocol/request/set/SRemRequest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package icu.funkye.redispike.protocol.request; +package icu.funkye.redispike.protocol.request.set; import java.util.List; diff --git a/src/main/resources/lua/hlen.lua b/src/main/resources/lua/hlen.lua new file mode 100644 index 0000000..b6163be --- /dev/null +++ b/src/main/resources/lua/hlen.lua @@ -0,0 +1,5 @@ +function hash_count_bins(rec) + local bins = record.bin_names(rec) + local bin_count = #bins + return bin_count +end \ No newline at end of file diff --git a/src/test/java/icu/funkye/redispike/JedisPooledFactory.java b/src/test/java/icu/funkye/redispike/JedisPooledFactory.java index 07796c0..584212d 100644 --- a/src/test/java/icu/funkye/redispike/JedisPooledFactory.java +++ b/src/test/java/icu/funkye/redispike/JedisPooledFactory.java @@ -45,8 +45,8 @@ public static JedisPoolAbstract getJedisPoolInstance(String ip, int port) { if (jedisPool == null) { GenericObjectPoolConfig config = new GenericObjectPoolConfig(); config.setMaxTotal(100); - config.setMinIdle(2); - config.setMaxIdle(10); + config.setMinIdle(10); + config.setMaxIdle(100); jedisPool = new JedisPool(config, ip, port, 10000); } } diff --git a/src/test/java/icu/funkye/redispike/ServerTest.java b/src/test/java/icu/funkye/redispike/ServerTest.java index c2dcf35..6058dc8 100644 --- a/src/test/java/icu/funkye/redispike/ServerTest.java +++ b/src/test/java/icu/funkye/redispike/ServerTest.java @@ -59,29 +59,32 @@ public static void init() throws ParseException { @Test public void TestPippline() { List keys = new ArrayList<>(); + String key = String.valueOf(ThreadLocalRandom.current().nextInt(RandomValue)); for (int i = 0; i < 3; i++) { keys.add(String.valueOf(ThreadLocalRandom.current().nextInt(RandomValue))); } - String key = String.valueOf(ThreadLocalRandom.current().nextInt(RandomValue)); try (Jedis jedis = JedisPooledFactory.getJedisInstance()) { try (Pipeline pipeline = jedis.pipelined()) { for (String value : keys) { pipeline.hset(key, value, "b"); } - pipeline.syncAndReturnAll(); + pipeline.sync(); + pipeline.hlen(key); + List list = pipeline.syncAndReturnAll(); + Assertions.assertEquals(list.get(list.size() - 1), 3L); } jedis.del(key); try (Pipeline pipeline = jedis.pipelined()) { for (String value : keys) { pipeline.set(value, value); } - pipeline.sync(); + pipeline.syncAndReturnAll(); for (String value : keys) { pipeline.get(value); } List list = pipeline.syncAndReturnAll(); - for (Object object : list) { - Assertions.assertTrue(keys.contains(object.toString())); + for (int i = 0; i < keys.size(); i++) { + Assertions.assertTrue(list.contains(keys.get(i))); } } jedis.del(key);