@@ -283,46 +283,65 @@ public static final byte[] toByteArray(final double value) {
283
283
284
284
public static enum Command implements ProtocolCommand {
285
285
286
- PING , AUTH , HELLO , SET , GET , GETDEL , GETEX , EXISTS , DEL , UNLINK , TYPE , FLUSHDB , FLUSHALL , MOVE ,
287
- KEYS , RANDOMKEY , RENAME , RENAMENX , DUMP , RESTORE , DBSIZE , SELECT , SWAPDB , MIGRATE , ECHO , //
288
- EXPIRE , EXPIREAT , EXPIRETIME , PEXPIRE , PEXPIREAT , PEXPIRETIME , TTL , PTTL , // <-- key expiration
289
- MULTI , DISCARD , EXEC , WATCH , UNWATCH , SORT , SORT_RO , INFO , SHUTDOWN , MONITOR , CONFIG , LCS , //
290
- GETSET , MGET , SETNX , SETEX , PSETEX , MSET , MSETNX , DECR , DECRBY , INCR , INCRBY , INCRBYFLOAT ,
291
- STRLEN , APPEND , SUBSTR , // <-- string
292
- SETBIT , GETBIT , BITPOS , SETRANGE , GETRANGE , BITCOUNT , BITOP , BITFIELD , BITFIELD_RO , // <-- bit (string)
293
- HSET , HGET , HSETNX , HMSET , HMGET , HINCRBY , HEXISTS , HDEL , HLEN , HKEYS , HVALS , HGETALL , HSTRLEN ,
294
- HEXPIRE , HPEXPIRE , HEXPIREAT , HPEXPIREAT , HTTL , HPTTL , HEXPIRETIME , HPEXPIRETIME , HPERSIST ,
295
- HRANDFIELD , HINCRBYFLOAT , HSETEX , HGETEX , HGETDEL , // <-- hash
296
- RPUSH , LPUSH , LLEN , LRANGE , LTRIM , LINDEX , LSET , LREM , LPOP , RPOP , BLPOP , BRPOP , LINSERT , LPOS ,
297
- RPOPLPUSH , BRPOPLPUSH , BLMOVE , LMOVE , LMPOP , BLMPOP , LPUSHX , RPUSHX , // <-- list
298
- SADD , SMEMBERS , SREM , SPOP , SMOVE , SCARD , SRANDMEMBER , SINTER , SINTERSTORE , SUNION , SUNIONSTORE ,
299
- SDIFF , SDIFFSTORE , SISMEMBER , SMISMEMBER , SINTERCARD , // <-- set
300
- ZADD , ZDIFF , ZDIFFSTORE , ZRANGE , ZREM , ZINCRBY , ZRANK , ZREVRANK , ZREVRANGE , ZRANDMEMBER , ZCARD ,
301
- ZSCORE , ZPOPMAX , ZPOPMIN , ZCOUNT , ZUNION , ZUNIONSTORE , ZINTER , ZINTERSTORE , ZRANGEBYSCORE ,
302
- ZREVRANGEBYSCORE , ZREMRANGEBYRANK , ZREMRANGEBYSCORE , ZLEXCOUNT , ZRANGEBYLEX , ZREVRANGEBYLEX ,
303
- ZREMRANGEBYLEX , ZMSCORE , ZRANGESTORE , ZINTERCARD , ZMPOP , BZMPOP , BZPOPMIN , BZPOPMAX , // <-- zset
304
- GEOADD , GEODIST , GEOHASH , GEOPOS , GEORADIUS , GEORADIUS_RO , GEOSEARCH , GEOSEARCHSTORE ,
305
- GEORADIUSBYMEMBER , GEORADIUSBYMEMBER_RO , // <-- geo
306
- PFADD , PFCOUNT , PFMERGE , // <-- hyper log log
307
- XADD , XLEN , XDEL , XTRIM , XRANGE , XREVRANGE , XREAD , XACK , XGROUP , XREADGROUP , XPENDING , XCLAIM ,
308
- XAUTOCLAIM , XINFO , // <-- stream
309
- EVAL , EVALSHA , SCRIPT , EVAL_RO , EVALSHA_RO , FUNCTION , FCALL , FCALL_RO , // <-- program
310
- SUBSCRIBE , UNSUBSCRIBE , PSUBSCRIBE , PUNSUBSCRIBE , PUBLISH , PUBSUB ,
311
- SSUBSCRIBE , SUNSUBSCRIBE , SPUBLISH , // <-- pub sub
312
- SAVE , BGSAVE , BGREWRITEAOF , LASTSAVE , PERSIST , ROLE , FAILOVER , SLOWLOG , OBJECT , CLIENT , TIME ,
313
- SCAN , HSCAN , SSCAN , ZSCAN , WAIT , CLUSTER , ASKING , READONLY , READWRITE , SLAVEOF , REPLICAOF , COPY ,
314
- SENTINEL , MODULE , ACL , TOUCH , MEMORY , LOLWUT , COMMAND , RESET , LATENCY , WAITAOF ;
286
+ PING (false ), AUTH (false ), HELLO (false ), SET (true ), GET (false ), GETDEL (true ),
287
+ GETEX (true ), EXISTS (false ), DEL (true ), UNLINK (true ), TYPE (false ), FLUSHDB (true ),
288
+ FLUSHALL (true ), MOVE (true ), KEYS (false ), RANDOMKEY (false ), RENAME (true ), RENAMENX (true ),
289
+ DUMP (false ), RESTORE (true ), DBSIZE (false ), SELECT (false ), SWAPDB (true ), MIGRATE (true ),
290
+ ECHO (false ), //
291
+
292
+ EXPIRE (true ), EXPIREAT (true ), EXPIRETIME (false ), PEXPIRE (true ), PEXPIREAT (true ), PEXPIRETIME (false ),
293
+ TTL (false ), PTTL (false ), // <-- key expiration
294
+ MULTI (true ), DISCARD (true ), EXEC (true ), WATCH (true ), UNWATCH (true ), SORT (true ), SORT_RO (false ),
295
+ INFO (false ), SHUTDOWN (true ), MONITOR (false ), CONFIG (true ), LCS (false ), //
296
+ GETSET (true ), MGET (false ), SETNX (true ), SETEX (true ), PSETEX (true ), MSET (true ), MSETNX (true ),
297
+ DECR (true ), DECRBY (true ), INCR (true ), INCRBY (true ), INCRBYFLOAT (true ),
298
+ STRLEN (false ), APPEND (true ), SUBSTR (false ), // <-- string
299
+ SETBIT (true ), GETBIT (false ), BITPOS (false ), SETRANGE (true ), GETRANGE (false ), BITCOUNT (false ), BITOP (true ),
300
+ BITFIELD (true ), BITFIELD_RO (false ), // <-- bit (string)
301
+ HSET (true ), HGET (false ), HSETNX (true ), HMSET (true ), HMGET (false ), HINCRBY (true ), HEXISTS (false ),
302
+ HDEL (true ), HLEN (false ), HKEYS (false ), HVALS (false ), HGETALL (false ), HSTRLEN (false ),
303
+ HEXPIRE (true ), HPEXPIRE (true ), HEXPIREAT (true ), HPEXPIREAT (true ), HTTL (false ), HPTTL (false ),
304
+ HEXPIRETIME (false ), HPEXPIRETIME (false ), HPERSIST (true ),
305
+ HRANDFIELD (false ), HINCRBYFLOAT (true ), HSETEX (true ), HGETEX (true ), HGETDEL (true ), // <-- hash
306
+ RPUSH (true ), LPUSH (true ), LLEN (false ), LRANGE (false ), LTRIM (true ), LINDEX (false ), LSET (true ),
307
+ LREM (true ), LPOP (true ), RPOP (true ), BLPOP (true ), BRPOP (true ), LINSERT (true ), LPOS (false ),
308
+ RPOPLPUSH (true ), BRPOPLPUSH (true ), BLMOVE (true ), LMOVE (true ), LMPOP (true ), BLMPOP (true ), LPUSHX (true ), RPUSHX (true ), // <-- list
309
+ SADD (true ), SMEMBERS (false ), SREM (true ), SPOP (true ), SMOVE (true ), SCARD (false ), SRANDMEMBER (false ), SINTER (false ), SINTERSTORE (true ), SUNION (false ), SUNIONSTORE (true ),
310
+ SDIFF (false ), SDIFFSTORE (true ), SISMEMBER (false ), SMISMEMBER (false ), SINTERCARD (false ), // <-- set
311
+ ZADD (true ), ZDIFF (false ), ZDIFFSTORE (true ), ZRANGE (false ), ZREM (true ), ZINCRBY (true ), ZRANK (false ), ZREVRANK (false ), ZREVRANGE (false ), ZRANDMEMBER (false ), ZCARD (false ),
312
+ ZSCORE (false ), ZPOPMAX (true ), ZPOPMIN (true ), ZCOUNT (false ), ZUNION (false ), ZUNIONSTORE (true ), ZINTER (false ), ZINTERSTORE (true ), ZRANGEBYSCORE (false ),
313
+ ZREVRANGEBYSCORE (false ), ZREMRANGEBYRANK (true ), ZREMRANGEBYSCORE (true ), ZLEXCOUNT (false ), ZRANGEBYLEX (false ), ZREVRANGEBYLEX (false ),
314
+ ZREMRANGEBYLEX (true ), ZMSCORE (false ), ZRANGESTORE (true ), ZINTERCARD (false ), ZMPOP (true ), BZMPOP (true ), BZPOPMIN (true ), BZPOPMAX (true ), // <-- zset
315
+ GEOADD (true ), GEODIST (false ), GEOHASH (false ), GEOPOS (false ), GEORADIUS (true ), GEORADIUS_RO (false ), GEOSEARCH (true ), GEOSEARCHSTORE (true ),
316
+ GEORADIUSBYMEMBER (true ), GEORADIUSBYMEMBER_RO (false ), // <-- geo
317
+ PFADD (true ), PFCOUNT (false ), PFMERGE (true ), // <-- hyper log log
318
+ XADD (true ), XLEN (false ), XDEL (true ), XTRIM (true ), XRANGE (false ), XREVRANGE (false ), XREAD (false ), XACK (true ), XGROUP (true ), XREADGROUP (false ), XPENDING (false ), XCLAIM (true ),
319
+ XAUTOCLAIM (true ), XINFO (false ), // <-- stream
320
+ EVAL (true ), EVALSHA (true ), SCRIPT (true ), EVAL_RO (true ), EVALSHA_RO (true ), FUNCTION (true ), FCALL (true ), FCALL_RO (false ), // <-- program
321
+ SUBSCRIBE (false ), UNSUBSCRIBE (false ), PSUBSCRIBE (false ), PUNSUBSCRIBE (false ), PUBLISH (true ), PUBSUB (false ),
322
+ SSUBSCRIBE (false ), SUNSUBSCRIBE (false ), SPUBLISH (true ), // <-- pub sub
323
+ SAVE (true ), BGSAVE (true ), BGREWRITEAOF (true ), LASTSAVE (false ), PERSIST (true ), ROLE (false ), FAILOVER (true ), SLOWLOG (true ), OBJECT (false ), CLIENT (true ), TIME (false ),
324
+ SCAN (false ), HSCAN (false ), SSCAN (false ), ZSCAN (false ), WAIT (true ), CLUSTER (true ), ASKING (true ), READONLY (true ), READWRITE (true ), SLAVEOF (true ), REPLICAOF (true ), COPY (true ),
325
+ SENTINEL (true ), MODULE (true ), ACL (true ), TOUCH (true ), MEMORY (true ), LOLWUT (false ), COMMAND (false ), RESET (true ), LATENCY (true ), WAITAOF (true );
315
326
316
327
private final byte [] raw ;
317
328
318
- private Command () {
329
+ private final boolean isWriteCommand ;
330
+
331
+ private Command (boolean isWriteCommand ) {
319
332
raw = SafeEncoder .encode (name ());
333
+ this .isWriteCommand = isWriteCommand ;
320
334
}
321
335
322
336
@ Override
323
337
public byte [] getRaw () {
324
338
return raw ;
325
339
}
340
+
341
+ @ Override
342
+ public boolean isWriteCommand () {
343
+ return isWriteCommand ;
344
+ }
326
345
}
327
346
328
347
public static enum Keyword implements Rawable {
0 commit comments