Redis的不同命令拥有不同的属性,如是否是只读命令,是否是管理员命令等,一个命令可以拥有多个属性。在一些特殊情况下不同属性的命令会有不同的表现,下面来逐一介绍。
1、 REDIS_CMD_WRITE
拥有REDIS_CMD_WRITE属性的命令的表现是会修改Redis数据库的数据。一个只读的从数据库会拒绝执行拥有REDIS_CMD_WRI TE属性的命令,另外在Lua脚本中执行了拥有REDIS_CMD_RANDOM属性的命令后,不可以再执行拥有REDIS_CMD_WRITE属性的命令,否则会提示错误:“Write commands not allowed after non deterministic commands.”拥有REDIS_CMD_WRITE 属性的命令如下,
SET
SETNX
SETEX
PSETEX
APPEND
DEL
SETBIT
SETRANGE
INCR
DECR
RPUSH
LPUSH
RPUSHX
LPUSHX
LINSERT
RPOP
LPOP
BRPOP
BRPOPLPUSH
BLPOP
LSET
LTRIM
LREM
RPOPLPUSH
SADD
SREM
SMOVE
SPOP
SINTERSTORE
SUNIONSTORE
SDIFFSTORE
ZADD
ZINCRBY
ZREM
ZREMRANGEBYSCORE
ZREMRANGEBYRANK
ZUNIONSTORE
ZINTERSTORE
HSET
HSETNX
HMSET
HINCRBY
HINCRBYFLOAT
HDEL
INCRBY
DECRBY
INCRBYFLOAT
GETSET
MSET
MSETNX
MO