Skip to content

Todis 需要写权限的命令汇总

rockeet edited this page Nov 4, 2021 · 1 revision
  • 权限为 ??? 的表示我不知道其是否需要数据库的写权限。
  • 备注中有 Pika 的表示这是一个存在于 pika 但不存在于 redis 的指令,在 pika 中的作用与工作原理我并不明确。
  • 备注中有 diff 的表示这个命令在 pika 文档的差异化命令列表或与 redis 兼容差异的列表中,即与 redis 中同样的命令有出入。
  • 信息为空的表示我暂时没找到其功能说明。

1. Admin

序号 命令 含义 是否需要写权限 备注
1 slaveof 将当前服务器转变为指定服务器的从属服务器(slave server)。 diff
2 dbslaveof Pika
3 auth 检测给定的密码和配置文件中的密码是否相符。
4 bgsave 在后台异步保存当前数据库的数据到磁盘。 diff
5 compact 立即触发引擎层(rocksdb)所有数据结构执行全量 compact 操作。 ??? Pika
6 purgelogsto 手动清理日志。 ??? Pika
7 ping 使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。 diff
8 select 用于切换到指定的数据库,数据库索引号 index 用数字值指定,以 0 作为起始索引值。
9 flushall 清空整个服务器的数据。
10 flushdb 清空当前数据库。 diff
11 client 当前 client 命令支持 client list 及 client kill,client list 显示的内容少于redis。 ??? diff
12 shutdown 停止所有客户端,执行保存操作,更新一些文件,关闭服务器。 不需要写权限,但是从结点不应该被允许这么做。
13 info 获取数据库信息。 diff
14 config 查看或设置配置项。 diff
修改的是配置文件,不是数据库,但是从结点不应该被允许这么做。
15 monitor 实时打印出 Redis 服务器接收到的命令,调试用。
16 dbsize 返回当前数据库的 key 的数量。
17 time 返回当前服务器时间。
18 delbackup 删除dump目录下除正在使用(全同步中)的db快照外的其他快照。 Pika
不需要数据库写权限,但是从结点不应该被允许这么做。
19 echo 打印给定的字符串。
21 scandb Pika
22 slowlog 慢日志操作命令,可以读取或修改慢日志的内容。 diff
不需要数据库写权限,但是从结点不应该被允许这么做。
23 padding Pika
24 tcmalloc ??? 需要 tcmalloc 扩展。
25 pkpatternmatchdel Pika
26 dummy Pika

2. Strings

序号 命令 含义 是否需要写权限 备注
1 set 设置一个 key。
2 get 获取一个 key 的值。
3 del 删除 key。
4 incr 给一个 key 的值加 1。
5 incrby 给一个 key 的值加上指定的数。
6 incrbyfloat 给一个 key 的值加上指定的浮点数。
7 decr 给一个 key 的值减 1。
8 decrby 给一个 key 的值减去指定的数。
9 getset 设置指定 key 的值,并返回 key 的旧值。
10 append 为指定的 key 追加值。
11 mget 返回所有给定 key 的值。
12 keys 查找所有符合给定模式 pattern 的 key 。 diff
13 setnx 指定的 key 不存在时,为 key 设置指定的值。
14 setex 为指定的 key 设置值及其过期时间。
15 psetex 以毫秒为单位设置 key 的生存时间。
16 delvx Pika
17 mset 设置一个或多个 key-value 对。
18 msetnx 用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对。
19 getrange 返回 key 中字符串值的子字符串。
20 setrange 用指定的字符串覆盖给定 key 所储存的字符串值。
21 strlen 获取指定 key 所储存的字符串值的长度。
22 exists 检查给定 key 是否存在。
23 expire 设置 key 的过期时间。
24 pexpire 以毫秒为单位来设置键的到期时间。 diff
25 expireat 以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。
26 pexpireat 以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间,以毫秒计。 diff
27 ttl 以秒为单位返回 key 的剩余过期时间。
28 pttl 以毫秒为单位返回 key 的剩余过期时间。
29 persist 移除给定 key 的过期时间,使得 key 永不过期。
30 type 返回 key 所储存的值的类型。 diff
31 scan 用于迭代数据库中的数据库键。
32 scanx Pika
33 pksetexat Pika
34 pkscanrange 对指定数据结构进行正向scan。 Pika
35 pkrscanrange 类似于pkscanrange, 逆序。 Pika

3. Hashes

序号 命令 含义 是否需要写权限 备注
1 hdel 删除哈希表 key 中的一个或多个指定字段。
2 hset 为哈希表中的字段赋值 。 diff
3 hget 返回哈希表中指定字段的值。
4 hgetall 返回哈希表中所有的字段和值。
5 hexists 查看哈希表的指定字段是否存在。
6 hincrby 为哈希表中的字段值加上指定增量值。
7 hincrbyfloat 为哈希表中的字段值加上指定增量的浮点数值。
8 hkeys 获取哈希表中的所有域(field)。
9 hlen 获取哈希表中字段的数量。
10 hmget 返回哈希表中,一个或多个给定字段的值。
11 hmset 同时将多个 field-value (字段-值)对设置到哈希表中。
12 hsetnx 为哈希表中不存在的的字段赋值 。
13 hstrlen 返回哈希表 key 中,与给定域 field 相关联的值的字符串长度。
14 hvals 返回哈希表所有的值。
15 hscan 迭代哈希表中的键值对。
16 hscanx Pika
17 pkhscanrange 列出指定hash table中处于区间的列表。 Pika
18 pkhrscanrange 列出指定hash table中处于区间的列表,逆序。 Pika

4. Lists

序号 命令 含义 是否需要写权限 备注
1 lindex 通过索引获取列表中的元素。
2 linsert 在列表的元素前或者后插入元素。
3 llen 返回列表的长度。
4 lpop 移除并返回列表的第一个元素。
5 lpush 将一个或多个值插入到列表头部。
6 lpushx 将一个值插入到已存在的列表头部,列表不存在时操作无效。
7 lrange 返回列表中指定区间内的元素。
8 lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
9 lset 通过索引来设置元素的值。
10 ltrim 让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
11 rpop 移除列表的最后一个元素,返回值为移除的元素。
12 rpoplpush 移除列表的最后一个元素,并将该元素添加到另一个列表并返回。
13 rpush 将一个或多个值插入到列表的尾部(最右边)。
14 rpushx 将一个值插入到已存在的列表尾部(最右边)。

5. BitMap

序号 命令 含义 是否需要写权限 备注
1 setbit 对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。 diff
2 getbit 对 key 所储存的字符串值,获取指定偏移量上的位(bit)。 diff
3 bitpos BITPOS key bit [start] [end] 返回位图中第一个值为 bit 的二进制位的位置。 diff
4 bitop 对一个或多个保存二进制位的字符串 key 进行位元操作,并保存结果。 diff
5 bitcount 计算给定字符串中,被设置为 1 的比特位的数量。 diff

6. Zsets

序号 命令 含义 是否需要写权限 备注
1 zadd 将一个或多个成员元素及其分数值加入到有序集当中。 diff
2 zcard 返回有序集 key 的基数。
3 zscan 迭代有序集合中的元素。
4 zincrby 对有序集合中指定成员的分数加上增量。
5 zrange 返回有序集中,指定区间内的成员。
6 zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。
7 zcount 计算有序集合中指定分数区间的成员数量。
8 zrem 移除有序集中的一个或多个成员,不存在的成员将被忽略。
9 zunionstore 计算给定的一个或多个有序集的并集。
10 zinterstore 计算给定的一个或多个有序集的交集。
11 zrank 返回有序集中成员的排名(递增)。
12 zrevrank 返回有序集中成员的排名(递减)。
13 zscore 返回有序集中成员的分数值。
14 zrevrange 返回有序集中,指定区间内的成员。
15 zrevrangebyscore 返回有序集中指定分数区间内的所有的成员。
16 zrangebylex 通过字典区间返回有序集合的成员。
17 zrevrangebylex 通过字典区间返回有序集合的成员(逆序)。
18 zlexcount 计算有序集合中指定字典区间内成员数量。
19 zremrangebyrank 移除有序集中,指定排名(rank)区间内的所有成员。
20 zremrangebylex 移除有序集合中给定的字典区间的所有成员。
21 zremrangebyscore 移除有序集中,指定分数(score)区间内的所有成员。
22 zpopmax 删除并返回按键存储的排序集合中分数最高的成员。
23 zpopmin 删除并返回按键存储的排序集合中分数最低的成员。

7. Sets

序号 命令 含义 是否需要写权限 备注
1 sadd 将一个或多个成员元素加入到集合中。
2 spop 移除集合中的指定 key 的一个或多个随机元素,移除后会返回移除的元素。
3 scard 返回 集合 KEY 的基数(集合中元素的数量)。
4 smembers 返回集合中的所有的成员。
5 sscan 迭代集合中键的元素。
6 srem 移除集合中的一个或多个成员元素。
7 sunion 返回给定集合的并集。
8 sunionstore 将给定集合的并集存储在指定的集合中。
9 sinter 返回给定集合的交集。
10 sinterstore 将给定集合的交集存储在指定的集合中。
11 sismember 判断成员元素是否是集合的成员。
12 sdiff 返回第一个集合与其他集合之间的差异,也可以认为说第一个集合中独有的元素。
13 sdiffstore 将给定集合之间的差集存储在指定的集合中。
14 smove 将指定成员从一个集合移动到另一个集合。
15 srandmember 返回集合中的一个随机元素。 diff

8. HyperLogLog

序号 命令 含义 是否需要写权限 备注
1 pfadd 将所有元素参数添加到 HyperLogLog 数据结构中。
2 pfcount 返回给定 HyperLogLog 的基数估算值。
3 pfmerge 将多个 HyperLogLog 合并为一个 HyperLogLog。

9. GEO

序号 命令 含义 是否需要写权限 备注
1 geoadd 添加地理位置的坐标。
2 geopos 获取地理位置的坐标。
3 geodist 计算两个位置之间的距离。
4 geohash 返回一个或多个位置对象的 geohash 值。
5 georadius 根据用户给定的经纬度坐标来获取指定范围内的地理位置集合。
6 georadiusbymember 根据储存在位置集合里面的某个地点获取指定范围内的地理位置集合。

10. Pub/Sub

序号 命令 含义 是否需要写权限 备注
1 publish 用于将信息发送到指定的频道。 ???
2 subscribe 订阅给定的一个或多个频道的信息。 ???
3 unsubscribe 退订给定的一个或多个频道的信息。 ???
4 pubsub 查看订阅与发布系统状态。
5 psubscribe 订阅一个或多个符合给定模式的频道。 ???
6 punsubscribe 退订所有给定模式的频道。 ???

11. Codis Slots

序号 命令 含义 是否需要写权限 备注
1 slotsinfo
2 slotshashkey
3 slotsmgrttagslot-async
4 slotsmgrtslot-async
5 slotsdel
6 slotsscan
7 slotsmgrt-exec-wrapper
8 slotsmgrt-async-status
9 slotsmgrt-async-cancel
10 slotsmgrtslot
11 slotsmgrttagslot
12 slotsmgrtone
13 slotsmgrttagone

12. Cluster

序号 命令 含义 是否需要写权限 备注
1 pkclusterinfo Pika
2 pkclusteraddslots Pika
3 pkclusterdelslots Pika
4 pkclusterslotsslaveof Pika
5 pkclusteraddtable Pika
6 pkclusterdeltable Pika
7 pkcluster Pika

usrblacklist 配置项

这里已经把上述所有需要写权限的命令添加黑名单了,可以直接复制。

暂时这写了确定为是的命令,不确定的都没写。

userblacklist : flushall, flushdb, set, del, incr, incrby, incrbyfloat, decr, decrby, getset, append, setnx, setex, psetex, mset, msetnx, setrange, expire, pexpire, expireat, pexpireat, persist, hdel, hset, hincrby, hincrbyfloat, hmset, hsetnx, linsert, lpop, lpush, lpushx, lrem, lset, ltrim, rpop, rpoplpush, rpush, rpushx, setbit, bitop, zadd, zincrby, zrem, zremrangebyrank, zremrangebylex, zremrangebyscore, zpopmax, zpopmin, sadd, spop, srem, sunionstore, sinterstore, sdiffstore, smove, pfadd, pfmerge, geoadd