public RFuture<Map<K, V>> getAllOperationAsync(Set<K> keys) { List<Object> args = new ArrayList<Object>(keys.size() + 1); args.add(getName()); encodeMapKeys(args, keys); RFuture<Map<K, V>> future = commandExecutor.readAsync(getName(), codec, new RedisCommand<Map<Object, Object>>("HMGET", new MapGetAllDecoder(new ArrayList<Object>(keys), 0), ValueType.MAP_VALUE), args.toArray()); return future; }
public boolean isBlockingCommand() { return RedisCommands.BLOCKING_COMMAND_NAMES.contains(command.getName()) || RedisCommands.BLOCKING_COMMANDS.contains(command); }
private void handleResult(CommandData<Object, Object> data, List<Object> parts, Object result, boolean skipConvertor, Channel channel) { if (data != null && !skipConvertor) { result = data.getCommand().getConvertor().convert(result); } if (parts != null) { parts.add(result); } else { completeResponse(data, result, channel); } }
private <T, R> RFuture<R> evalAsync(final NodeSource nodeSource, boolean readOnlyMode, final Codec codec, final RedisCommand<T> evalCommandType, final String script, final List<Object> keys, final Object... params) { if (isEvalCacheActive() && evalCommandType.getName().equals("EVAL")) { final RPromise<R> mainPromise = new RedissonPromise<R>(); RedisCommand command = new RedisCommand(evalCommandType, "EVALSHA"); List<Object> args = new ArrayList<Object>(2 + keys.size() + params.length); args.add(sha1); RedisCommand command = new RedisCommand(evalCommandType, "EVALSHA"); List<Object> args = new ArrayList<Object>(2 + keys.size() + params.length); args.add(sha1);
out.writeByte(ARGS_PREFIX); int len = 1 + msg.getParams().length; if (msg.getCommand().getSubName() != null) { len++; out.writeBytes(CRLF); writeArgument(out, msg.getCommand().getName().getBytes(CharsetUtil.UTF_8)); if (msg.getCommand().getSubName() != null) { writeArgument(out, msg.getCommand().getSubName().getBytes(CharsetUtil.UTF_8));
MultiDecoder<Object> multiDecoder = data.getCommand().getReplayMultiDecoder(); if (multiDecoder != null) { Decoder<Object> mDecoder = multiDecoder.getDecoder(parts.size(), state()); Decoder<Object> decoder = data.getCommand().getReplayDecoder(); if (decoder == null) { if (data.getCodec() == null) { return StringCodec.INSTANCE.getValueDecoder(); if (data.getCommand().getOutParamType() == ValueType.MAP) { if (parts != null && parts.size() % 2 != 0) { return data.getCodec().getMapValueDecoder(); return data.getCodec().getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_KEY) { return data.getCodec().getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_VALUE) { return data.getCodec().getMapValueDecoder(); } else {
protected MultiDecoder<Object> messageDecoder(CommandData<Object, Object> data, List<Object> parts) { if (data == null) { if (parts.isEmpty()) { return null; } } return data.getCommand().getReplayMultiDecoder(); }
private <T, R> RFuture<R> evalAsync(final NodeSource nodeSource, boolean readOnlyMode, final Codec codec, final RedisCommand<T> evalCommandType, final String script, final List<Object> keys, final Object... params) { if (isEvalCacheActive() && evalCommandType.getName().equals("EVAL")) { final RPromise<R> mainPromise = new RedissonPromise<R>(); RedisCommand command = new RedisCommand(evalCommandType, "EVALSHA"); List<Object> args = new ArrayList<Object>(2 + keys.size() + params.length); args.add(sha1); RedisCommand command = new RedisCommand(evalCommandType, "EVALSHA"); List<Object> args = new ArrayList<Object>(2 + keys.size() + params.length); args.add(sha1);
out.writeByte(ARGS_PREFIX); int len = 1 + msg.getParams().length; if (msg.getCommand().getSubName() != null) { len++; out.writeBytes(CRLF); writeArgument(out, msg.getCommand().getName().getBytes(CharsetUtil.UTF_8)); if (msg.getCommand().getSubName() != null) { writeArgument(out, msg.getCommand().getSubName().getBytes(CharsetUtil.UTF_8));
MultiDecoder<Object> multiDecoder = data.getCommand().getReplayMultiDecoder(); if (multiDecoder != null) { Decoder<Object> mDecoder = multiDecoder.getDecoder(parts.size(), state()); Decoder<Object> decoder = data.getCommand().getReplayDecoder(); if (decoder == null) { if (data.getCodec() == null) { return StringCodec.INSTANCE.getValueDecoder(); if (data.getCommand().getOutParamType() == ValueType.MAP) { if (parts != null && parts.size() % 2 != 0) { return data.getCodec().getMapValueDecoder(); return data.getCodec().getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_KEY) { return data.getCodec().getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_VALUE) { return data.getCodec().getMapValueDecoder(); } else {
protected MultiDecoder<Object> messageDecoder(CommandData<Object, Object> data, List<Object> parts) { if (data == null) { if (parts.isEmpty()) { return null; } } return data.getCommand().getReplayMultiDecoder(); }
public RFuture<Map<K, V>> getAllOperationAsync(Set<K> keys) { List<Object> args = new ArrayList<Object>(keys.size() + 1); args.add(getName()); encodeMapKeys(args, keys); RFuture<Map<K, V>> future = commandExecutor.readAsync(getName(), codec, new RedisCommand<Map<Object, Object>>("HMGET", new MapGetAllDecoder(new ArrayList<Object>(keys), 0), ValueType.MAP_VALUE), args.toArray()); return future; }
public boolean isBlockingCommand() { return RedisCommands.BLOCKING_COMMAND_NAMES.contains(command.getName()) || RedisCommands.BLOCKING_COMMANDS.contains(command); }
out.writeByte(ARGS_PREFIX); int len = 1 + msg.getParams().length; if (msg.getCommand().getSubName() != null) { len++; out.writeBytes(CRLF); writeArgument(out, msg.getCommand().getName().getBytes(CharsetUtil.UTF_8)); if (msg.getCommand().getSubName() != null) { writeArgument(out, msg.getCommand().getSubName().getBytes(CharsetUtil.UTF_8));
MultiDecoder<Object> multiDecoder = data.getCommand().getReplayMultiDecoder(); if (multiDecoder != null) { Decoder<Object> mDecoder = multiDecoder.getDecoder(parts.size(), state.get()); Decoder<Object> decoder = data.getCommand().getReplayDecoder(); if (decoder == null) { if (codec == null) { return StringCodec.INSTANCE.getValueDecoder(); if (data.getCommand().getOutParamType() == ValueType.MAP) { if (parts != null && parts.size() % 2 != 0) { return codec.getMapValueDecoder(); return codec.getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_KEY) { return codec.getMapKeyDecoder(); } else if (data.getCommand().getOutParamType() == ValueType.MAP_VALUE) { return codec.getMapValueDecoder(); } else {
private void handleResult(CommandData<Object, Object> data, List<Object> parts, Object result, boolean skipConvertor, Channel channel) { if (data != null && !skipConvertor) { result = data.getCommand().getConvertor().convert(result); } if (parts != null) { parts.add(result); } else { completeResponse(data, result, channel); } }
@Override protected MultiDecoder<Object> messageDecoder(CommandData<Object, Object> data, List<Object> parts) { if (parts.isEmpty()) { return null; } String command = parts.get(0).toString(); if (MESSAGES.contains(command)) { ChannelName channelName = new ChannelName((byte[]) parts.get(1)); PubSubKey key = new PubSubKey(channelName, command); CommandData<Object, Object> commandData = commands.get(key); if (commandData == null) { return null; } return commandData.getCommand().getReplayMultiDecoder(); } else if (command.equals("message")) { byte[] channelName = (byte[]) parts.get(1); return entries.get(new ChannelName(channelName)).getDecoder(); } else if (command.equals("pmessage")) { byte[] patternName = (byte[]) parts.get(1); return entries.get(new ChannelName(patternName)).getDecoder(); } else if (command.equals("pong")) { return new ListObjectDecoder<Object>(0); } return data.getCommand().getReplayMultiDecoder(); }
@Override public <R> RFuture<R> evalShaAsync(String key, Mode mode, String shaDigest, ReturnType returnType, List<Object> keys, Object... values) { RedisCommand command = new RedisCommand(returnType.getCommand(), "EVALSHA"); if (mode == Mode.READ_ONLY) { return commandExecutor.evalReadAsync(key, codec, command, shaDigest, keys, encode(Arrays.asList(values), codec).toArray()); } return commandExecutor.evalWriteAsync(key, codec, command, shaDigest, keys, encode(Arrays.asList(values), codec).toArray()); }
@Override public List<CommandData<Object, Object>> getPubSubOperations() { List<CommandData<Object, Object>> result = new ArrayList<CommandData<Object, Object>>(); for (CommandData<?, ?> commandData : commands) { if (RedisCommands.PUBSUB_COMMANDS.equals(commandData.getCommand().getName())) { result.add((CommandData<Object, Object>)commandData); } } return result; }
@Override public void operationComplete(Future<T> future) throws Exception { if (!future.isSuccess() && !(future.cause() instanceof RedisRedirectException)) { mainPromise.tryFailure(future.cause()); return; } T result = future.getNow(); if (future.cause() instanceof RedisRedirectException) { result = command.getConvertor().convert(result); } if (callback != null) { callback.onSlotResult(result); } if (counter.decrementAndGet() == 0) { if (callback != null) { mainPromise.trySuccess(callback.onFinish()); } else { mainPromise.trySuccess(null); } } } };