public class ClusterPipeline extends MultiNodePipelineBase
ClusterPipeline allows batching multiple commands for efficient execution in a Redis Cluster environment. Commands are automatically routed to the appropriate cluster nodes based on key hash slots.
Important Limitations:
UnsupportedOperationException.KEYS - requires execution on all master shardsMGET with keys in different slots - requires execution on multiple shardsSCRIPT LOAD - requires execution on all nodesRedisClusterClient instead.Usage Pattern:
try (RedisCluster cluster = new RedisCluster(nodes, config)) {
// For single-node commands, use pipelined mode
try (ClusterPipeline pipeline = cluster.pipelined()) {
Response<String> r1 = pipeline.set("key1", "value1");
Response<String> r2 = pipeline.get("key1");
pipeline.sync();
System.out.println(r1.get()); // "OK"
System.out.println(r2.get()); // "value1"
}
// For multi-node commands, use non-pipelined mode
Set<String> allKeys = cluster.keys("*"); // Executes on all master shards
List<String> values = cluster.mget("key1", "key2", "key3"); // Cross-slot keys
}
MultiNodePipelineBase,
RedisClusterClientcommandFlagsRegistry, MULTI_NODE_PIPELINE_SYNC_WORKERScommandObjects| Constructor and Description |
|---|
ClusterPipeline(ClusterConnectionProvider provider,
ClusterCommandObjects commandObjects) |
ClusterPipeline(ClusterConnectionProvider provider,
RedisProtocol protocol) |
ClusterPipeline(java.util.Set<HostAndPort> clusterNodes,
JedisClientConfig clientConfig) |
ClusterPipeline(java.util.Set<HostAndPort> clusterNodes,
JedisClientConfig clientConfig,
org.apache.commons.pool2.impl.GenericObjectPoolConfig<Connection> poolConfig) |
ClusterPipeline(java.util.Set<HostAndPort> clusterNodes,
JedisClientConfig clientConfig,
org.apache.commons.pool2.impl.GenericObjectPoolConfig<Connection> poolConfig,
java.time.Duration topologyRefreshPeriod) |
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
protected Connection |
getConnection(HostAndPort nodeKey) |
protected HostAndPort |
getNodeKey(CommandArguments args) |
Response<java.lang.Long> |
spublish(byte[] channel,
byte[] message) |
Response<java.lang.Long> |
spublish(java.lang.String channel,
java.lang.String message) |
appendCommand, sync, waitReplicaspublish, publishappend, append, arcount, arcount, ardel, ardel, ardel, ardel, ardelrange, ardelrange, ardelrange, ardelrange, arget, arget, argetrange, argetrange, argrep, argrep, argrepWithValues, argrepWithValues, arinfo, arinfo, arinfoFull, arinfoFull, arinsert, arinsert, arinsert, arinsert, arlastitems, arlastitems, arlastitems, arlastitems, arlen, arlen, armget, armget, armset, armset, arnext, arnext, aropAggregate, aropAggregate, aropBitwise, aropBitwise, aropCount, aropCount, aropCount, aropCount, arring, arring, arring, arring, arscan, arscan, arscan, arscan, arseek, arseek, arset, arset, arset, arset, bfAdd, bfCard, bfExists, bfInfo, bfInsert, bfInsert, bfLoadChunk, bfMAdd, bfMExists, bfReserve, bfReserve, bfScanDump, bitcount, bitcount, bitcount, bitcount, bitcount, bitcount, bitfield, bitfield, bitfieldReadonly, bitfieldReadonly, bitop, bitop, bitpos, bitpos, bitpos, bitpos, blmove, blmove, blmovem, blmovem, blmovem, blmovem, blmpop, blmpop, blmpop, blmpop, blpop, blpop, blpop, blpop, blpop, blpop, brpop, brpop, brpop, brpop, brpop, brpop, brpoplpush, brpoplpush, bzmpop, bzmpop, bzmpop, bzmpop, bzpopmax, bzpopmax, bzpopmin, bzpopmin, cfAdd, cfAddNx, cfCount, cfDel, cfExists, cfInfo, cfInsert, cfInsert, cfInsertNx, cfInsertNx, cfLoadChunk, cfMExists, cfReserve, cfReserve, cfScanDump, cmsIncrBy, cmsInfo, cmsInitByDim, cmsInitByProb, cmsMerge, cmsMerge, cmsQuery, copy, copy, decr, decr, decrBy, decrBy, del, del, del, del, delex, delex, digestKey, digestKey, dump, dump, eval, eval, eval, eval, eval, eval, eval, eval, evalReadonly, evalReadonly, evalsha, evalsha, evalsha, evalsha, evalsha, evalsha, evalsha, evalsha, evalshaReadonly, evalshaReadonly, executeCommand, exists, exists, exists, exists, expire, expire, expire, expire, expireAt, expireAt, expireAt, expireAt, expireTime, expireTime, fcall, fcall, fcallReadonly, fcallReadonly, ftAggregate, ftAliasAdd, ftAliasDel, ftAliasList, ftAliasUpdate, ftAlter, ftAlter, ftConfigGet, ftConfigGet, ftConfigSet, ftConfigSet, ftCreate, ftCreate, ftDictAdd, ftDictAddBySampleKey, ftDictDel, ftDictDelBySampleKey, ftDictDump, ftDictDumpBySampleKey, ftDropIndex, ftDropIndexDD, ftExplain, ftExplainCLI, ftHybrid, ftInfo, ftSearch, ftSearch, ftSearch, ftSearch, ftSpellCheck, ftSpellCheck, ftSugAdd, ftSugAddIncr, ftSugDel, ftSugGet, ftSugGet, ftSugGetWithScores, ftSugGetWithScores, ftSugLen, ftSynDump, ftSynUpdate, ftTagVals, functionDelete, functionDelete, functionDump, functionFlush, functionFlush, functionKill, functionList, functionList, functionList, functionListBinary, functionListWithCode, functionListWithCode, functionListWithCode, functionListWithCodeBinary, functionLoad, functionLoad, functionLoadReplace, functionLoadReplace, functionRestore, functionRestore, functionStats, functionStatsBinary, geoadd, geoadd, geoadd, geoadd, geoadd, geoadd, geodist, geodist, geodist, geodist, geohash, geohash, geopos, geopos, georadius, georadius, georadius, georadius, georadiusByMember, georadiusByMember, georadiusByMember, georadiusByMember, georadiusByMemberReadonly, georadiusByMemberReadonly, georadiusByMemberReadonly, georadiusByMemberReadonly, georadiusByMemberStore, georadiusByMemberStore, georadiusReadonly, georadiusReadonly, georadiusReadonly, georadiusReadonly, georadiusStore, georadiusStore, geosearch, geosearch, geosearch, geosearch, geosearch, geosearch, geosearch, geosearch, geosearch, geosearch, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStore, geosearchStoreStoreDist, geosearchStoreStoreDist, get, get, getbit, getbit, getDel, getDel, getEx, getEx, getrange, getrange, getSet, getSet, hdel, hdel, hexists, hexists, hexpire, hexpire, hexpire, hexpire, hexpireAt, hexpireAt, hexpireAt, hexpireAt, hexpireTime, hexpireTime, hget, hget, hgetAll, hgetAll, hgetdel, hgetdel, hgetex, hgetex, himportSet, himportSet, hincrBy, hincrBy, hincrByFloat, hincrByFloat, hkeys, hkeys, hlen, hlen, hmget, hmget, hmset, hmset, hotkeysGet, hotkeysReset, hotkeysStart, hotkeysStop, hpersist, hpersist, hpexpire, hpexpire, hpexpire, hpexpire, hpexpireAt, hpexpireAt, hpexpireAt, hpexpireAt, hpexpireTime, hpexpireTime, hpttl, hpttl, hrandfield, hrandfield, hrandfield, hrandfield, hrandfieldWithValues, hrandfieldWithValues, hscan, hscan, hscanNoValues, hscanNoValues, hset, hset, hset, hset, hsetex, hsetex, hsetex, hsetex, hsetnx, hsetnx, hstrlen, hstrlen, httl, httl, hvals, hvals, incr, incr, incrBy, incrBy, incrByFloat, incrByFloat, increx, increx, increx, increx, increx, increx, jsonArrAppend, jsonArrAppend, jsonArrAppendWithEscape, jsonArrIndex, jsonArrIndex, jsonArrIndexWithEscape, jsonArrInsert, jsonArrInsert, jsonArrInsertWithEscape, jsonArrLen, jsonArrLen, jsonArrLen, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrPop, jsonArrTrim, jsonArrTrim, jsonClear, jsonClear, jsonClear, jsonDel, jsonDel, jsonDel, jsonGet, jsonGet, jsonGet, jsonGet, jsonGet, jsonMerge, jsonMerge, jsonMGet, jsonMGet, jsonNumIncrBy, jsonNumIncrBy, jsonSet, jsonSet, jsonSet, jsonSet, jsonSetWithEscape, jsonSetWithEscape, jsonStrAppend, jsonStrAppend, jsonStrAppend, jsonStrLen, jsonStrLen, jsonStrLen, jsonToggle, jsonToggle, jsonType, jsonType, jsonType, keys, keys, lcs, lcs, lindex, lindex, linsert, linsert, llen, llen, lmove, lmove, lmovem, lmovem, lmovem, lmovem, lmpop, lmpop, lmpop, lmpop, lpop, lpop, lpop, lpop, lpos, lpos, lpos, lpos, lpos, lpos, lpush, lpush, lpushx, lpushx, lrange, lrange, lrem, lrem, lset, lset, ltrim, ltrim, memoryUsage, memoryUsage, memoryUsage, memoryUsage, mget, mget, migrate, migrate, migrate, migrate, mset, mset, msetex, msetex, msetnx, msetnx, objectEncoding, objectEncoding, objectFreq, objectFreq, objectIdletime, objectIdletime, objectRefcount, objectRefcount, persist, persist, pexpire, pexpire, pexpire, pexpire, pexpireAt, pexpireAt, pexpireAt, pexpireAt, pexpireTime, pexpireTime, pfadd, pfadd, pfcount, pfcount, pfcount, pfcount, pfmerge, pfmerge, psetex, psetex, pttl, pttl, randomBinaryKey, randomKey, rename, rename, renamenx, renamenx, restore, restore, restore, restore, rpop, rpop, rpop, rpop, rpoplpush, rpoplpush, rpush, rpush, rpushx, rpushx, sadd, sadd, scan, scan, scan, scan, scan, scan, scard, scard, scriptExists, scriptExists, scriptFlush, scriptFlush, scriptFlush, scriptFlush, scriptKill, scriptKill, scriptLoad, scriptLoad, sdiff, sdiff, sdiffcard, sdiffcard, sdiffcard, sdiffcard, sdiffcard, sdiffcard, sdiffcard, sdiffstore, sdiffstore, sendCommand, sendCommand, sendCommand, set, set, set, set, setbit, setbit, setex, setex, setGet, setGet, setGet, setGet, setJsonObjectMapper, setnx, setnx, setrange, setrange, sinter, sinter, sintercard, sintercard, sintercard, sintercard, sinterstore, sinterstore, sismember, sismember, smembers, smembers, smismember, smismember, smove, smove, sort, sort, sort, sort, sort, sort, sort, sort, sortReadonly, sortReadonly, spop, spop, spop, spop, srandmember, srandmember, srandmember, srandmember, srem, srem, sscan, sscan, strlen, strlen, substr, substr, sunion, sunion, sunioncard, sunioncard, sunioncard, sunioncard, sunioncard, sunioncard, sunioncard, sunionstore, sunionstore, tdigestAdd, tdigestByRank, tdigestByRevRank, tdigestCDF, tdigestCreate, tdigestCreate, tdigestInfo, tdigestMax, tdigestMerge, tdigestMerge, tdigestMin, tdigestQuantile, tdigestRank, tdigestReset, tdigestRevRank, tdigestTrimmedMean, topkAdd, topkIncrBy, topkInfo, topkList, topkListWithCount, topkQuery, topkReserve, topkReserve, touch, touch, touch, touch, tsAdd, tsAdd, tsAdd, tsAdd, tsAlter, tsCreate, tsCreate, tsCreateRule, tsCreateRule, tsDecrBy, tsDecrBy, tsDecrBy, tsDel, tsDeleteRule, tsGet, tsGet, tsIncrBy, tsIncrBy, tsIncrBy, tsInfo, tsInfoDebug, tsMAdd, tsMGet, tsMRange, tsMRange, tsMRevRange, tsMRevRange, tsNRange, tsNRange, tsNRevRange, tsNRevRange, tsQueryIndex, tsQueryLabels, tsQueryLabelValues, tsRange, tsRange, tsRead, tsRead, tsRevRange, tsRevRange, ttl, ttl, type, type, unlink, unlink, unlink, unlink, vadd, vadd, vadd, vadd, vadd, vadd, vaddFP32, vaddFP32, vaddFP32, vaddFP32, vaddFP32, vaddFP32, vcard, vcard, vdim, vdim, vemb, vemb, vembRaw, vembRaw, vgetattr, vgetattr, vinfo, vismember, vismember, vlinks, vlinks, vlinksWithScores, vlinksWithScores, vrandmember, vrandmember, vrandmember, vrandmember, vrem, vrem, vsetattr, vsetattr, vsim, vsim, vsim, vsim, vsimByElement, vsimByElement, vsimByElement, vsimByElement, vsimByElementWithScores, vsimByElementWithScores, vsimWithScores, vsimWithScores, waitAOF, waitAOF, waitReplicas, waitReplicas, xack, xack, xackdel, xackdel, xackdel, xackdel, xadd, xadd, xadd, xautoclaim, xautoclaim, xautoclaimJustId, xautoclaimJustId, xcfgset, xcfgset, xclaim, xclaim, xclaimJustId, xclaimJustId, xdel, xdel, xdelex, xdelex, xdelex, xdelex, xgroupCreate, xgroupCreate, xgroupCreateConsumer, xgroupCreateConsumer, xgroupDelConsumer, xgroupDelConsumer, xgroupDestroy, xgroupDestroy, xgroupSetID, xgroupSetID, xinfoConsumers, xinfoConsumers, xinfoConsumers2, xinfoGroups, xinfoGroups, xinfoStream, xinfoStream, xinfoStreamFull, xinfoStreamFull, xinfoStreamFull, xinfoStreamFull, xlen, xlen, xnack, xnack, xpending, xpending, xpending, xpending, xrange, xrange, xrange, xrange, xrange, xrange, xread, xread, xreadAsMap, xreadBinary, xreadBinaryAsMap, xreadGroup, xreadGroup, xreadGroupAsMap, xreadGroupBinary, xreadGroupBinaryAsMap, xrevrange, xrevrange, xrevrange, xrevrange, xrevrange, xrevrange, xtrim, xtrim, xtrim, xtrim, zadd, zadd, zadd, zadd, zadd, zadd, zadd, zadd, zaddIncr, zaddIncr, zcard, zcard, zcount, zcount, zcount, zcount, zdiff, zdiff, zdiffstore, zdiffStore, zdiffstore, zdiffStore, zdiffWithScores, zdiffWithScores, zincrby, zincrby, zincrby, zincrby, zinter, zinter, zintercard, zintercard, zintercard, zintercard, zinterstore, zinterstore, zinterstore, zinterstore, zinterWithScores, zinterWithScores, zlexcount, zlexcount, zmpop, zmpop, zmpop, zmpop, zmscore, zmscore, zpopmax, zpopmax, zpopmax, zpopmax, zpopmin, zpopmin, zpopmin, zpopmin, zrandmember, zrandmember, zrandmember, zrandmember, zrandmemberWithScores, zrandmemberWithScores, zrange, zrange, zrange, zrange, zrangeByLex, zrangeByLex, zrangeByLex, zrangeByLex, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScore, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangeByScoreWithScores, zrangestore, zrangestore, zrangeWithScores, zrangeWithScores, zrangeWithScores, zrangeWithScores, zrank, zrank, zrankWithScore, zrankWithScore, zrem, zrem, zremrangeByLex, zremrangeByLex, zremrangeByRank, zremrangeByRank, zremrangeByScore, zremrangeByScore, zremrangeByScore, zremrangeByScore, zrevrange, zrevrange, zrevrangeByLex, zrevrangeByLex, zrevrangeByLex, zrevrangeByLex, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScore, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeByScoreWithScores, zrevrangeWithScores, zrevrangeWithScores, zrevrank, zrevrank, zrevrankWithScore, zrevrankWithScore, zscan, zscan, zscore, zscore, zunion, zunion, zunionstore, zunionstore, zunionstore, zunionstore, zunionWithScores, zunionWithScoresclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waithscan, hscanNoValuessdiffStore, sscanzscanxaddhscan, hscanNoValuessscanzscanxaddftAlter, ftAlter, ftCreate, ftCreate, ftCreate, ftSearchjsonMGet, jsonSetLegacy, jsonSetLegacyjsonMGet, jsonSet, jsonSet, jsonSetWithEscape, jsonSetWithEscapepublic ClusterPipeline(java.util.Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig)
public ClusterPipeline(java.util.Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig, org.apache.commons.pool2.impl.GenericObjectPoolConfig<Connection> poolConfig)
public ClusterPipeline(java.util.Set<HostAndPort> clusterNodes, JedisClientConfig clientConfig, org.apache.commons.pool2.impl.GenericObjectPoolConfig<Connection> poolConfig, java.time.Duration topologyRefreshPeriod)
public ClusterPipeline(ClusterConnectionProvider provider, RedisProtocol protocol)
public ClusterPipeline(ClusterConnectionProvider provider, ClusterCommandObjects commandObjects)
public void close()
close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class MultiNodePipelineBaseprotected HostAndPort getNodeKey(CommandArguments args)
getNodeKey in class MultiNodePipelineBaseprotected Connection getConnection(HostAndPort nodeKey)
getConnection in class MultiNodePipelineBasepublic Response<java.lang.Long> spublish(java.lang.String channel, java.lang.String message)
public Response<java.lang.Long> spublish(byte[] channel, byte[] message)
Copyright © 2026. All rights reserved.