docs/ops/API.md
pika支持redis五种类型(分别为 string、hash、list、set、zset)的接口,先列出其对redis的五种数据结构兼容统计。
| 图标 | 含义 |
|---|---|
| o | 该接口完全支持,使用方式与redis没有任何区别 |
| ! | 功能支持,但使用或输出与redis有部分差异,需注意 |
| × | 当前还未支持 |
| 接口 | DEL | DUMP | EXISTS | EXPIRE | EXPIREAT | KEYS | MIGRATE | MOVE | OBJECT |
|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | x | o | o | o | o | x | x | x |
| 接口 | PERSIST | PEXPIRE | PEXPIREAT | PTTL | RANDOMKEY | RENAME | RENAMENX | RESTORE | SORT |
| 状态 | o | ! | ! | o | x | x | x | x | x |
| 接口 | TOUCH | TTL | TYPE | UNLINK | WAIT | SCAN | |||
| 状态 | x | o | ! | o | x | ! |
备注:
| 接口 | APPEND | BITCOUNT | BITFIELD | BITOP | BITPOS | DECR | DECRBY | GET | GETBIT |
|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | o | x | ! | o | o | o | o | ! |
| 接口 | GETRANGE | GETSET | INCR | INCRBY | INCRBYFLOAT | MGET | MSET | MSETNX | STRLEN |
| 状态 | o | o | o | o | o | o | o | o | o |
| 接口 | PSETEX | SET | SETBIT | SETEX | SETNX | SETRANGE | |||
| 状态 | o | o | ! | o | o | o |
备注:
| 接口 | HDEL | HEXISTS | HGET | HGETALL | HINCRBY | HINCRBYFLOAT | HKEYS | HLEN | HMGET | HMSET |
|---|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | o | o | o | o | o |
| 接口 | HSET | HSETNX | HVALS | HSCAN | HSTRLEN | |||||
| 状态 | ! | o | o | o | o |
备注:
| 接口 | LINDEX | LINSERT | LLEN | LPOP | LPUSH | LPUSHX | LRANGE | LREM | LSET | LTRIM |
|---|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | x | o | o | o | o |
| 接口 | RPOP | RPOPLPUSH | RPUSH | RPUSHX | BLPOP | BRPOP | BRPOPLPUSH | |||
| 状态 | o | o | o | o | o | o | x |
| 接口 | SADD | SCARD | SDIFF | SDIFFSTORE | SINTER | SINTERSTORE | SISMEMBER | SMEMBERS | SMOVE | SPOP |
|---|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | o | o | o | o | o |
| 接口 | SRANDMEMBER | SREM | SUNION | SUNIONSTORE | SSCAN | |||||
| 状态 | ! | o | o | o | o |
备注:
| 接口 | ZADD | ZCARD | ZCOUNT | ZINCRBY | ZRANGE | ZRANGEBYSCORE | ZRANK | ZREM | ZREMRANGEBYRANK | ZREMRANGEBYSCORE |
|---|---|---|---|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | o | o | o | o | o |
| 接口 | ZREVRANGE | ZREVRANGEBYSCORE | ZREVRANK | ZSCORE | ZUNIONSTORE | ZINTERSTORE | ZSCAN | ZRANGEBYLEX | ZLEXCOUNT | ZREMRANGEBYLEX |
| 状态 | o | o | o | o | o | o | o | o | o | o |
| 接口 | ZPOPMAX | ZPOPMIN | ZREVERANGEBYLEX | |||||||
| 状态 | o | o | o |
| 接口 | PFADD | PFCOUNT | PFMERGE |
|---|---|---|---|
| 状态 | o | o | o |
备注:
| 接口 | GEOADD | GEODIST | GEOHASH | GEOPOS | GEORADIUS | GEORADIUSBYMEMBER |
|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | o |
| 接口 | SETBIT | GETBIT | BITPOS | BITOP | BITCOUNT |
|---|---|---|---|---|---|
| 状态 | o | o | o | o | o |
| 接口 | PSUBSCRIBE | PUBSUB | PUBLISH | PUNSUBSCRIBE | SUBSCRIBE | UNSUBSCRIBE |
|---|---|---|---|---|---|---|
| 状态 | o | o | o | o | o | o |
备注:
| 接口 | INFO | CONFIG | CLIENT | PING | BGSAVE | SHUTDOWN | SELECT | TYPE | HELLO |
|---|---|---|---|---|---|---|---|---|---|
| 状态 | ! | o | ! | o | o | o | ! | ! | o |
备注:
info:info支持全部输出,也支持匹配形式的输出,例如可以通过info stats查看状态信息,需要注意的是key space与redis不同,pika对于key space的展示选择了分类型展示而非redis的分库展示(因为pika没有库),pika对于key space的统计是被动的,需要手动触发,然后pika会在后台进行统计,pika的key space统计是精确的。触发方式为执行:keyspace命令即可,然后pika会在后台统计,此时可以使用: keyspace readonly命令来进行查看,readonly参数可以避免反复进行统计,如果当前数据为0,则证明还在统计中.info commandstats 可以查询到各个命令的调用次数和统计用时以及平均用时,和redis不同的是我们统计耗时的时间单位是毫秒;
client:当前client命令支持client list及client kill还有client setname,client list显示的内容少于redis;
select:该命令在3.1.0版前无任何效果,自3.1.0版开始与Redis一致;
ping: 该命令仅支持无参数使用,即使用PING,客户端返回PONG.
可用版本: >= 2.3.0
注意: 暂不支持键空间通知功能
以下为Pub/Sub发布订阅命令, 与Redis完全兼容
具体使用方法参考Redis的Pub/Sub文档
重名问题:由于pika每个类型独立运作, 所以允许重名。例如在key abc在string中存在的时候也同样允许在hash中存在,一个key最多重名5次(5大类型),但在同一接口中是无法重名的。所以建议在使用的时候对于不同类型不要使用完全相同的key;
分库问题:pika自3.1.0版起支持多库,相关命令、参数的变化请参考Pika3.1.0多库版命令、参数变化参考文档
数据展示:pika对于keyspace的展示选择了分类型展示而非redis的分库展示(因为pika没有分库概念),pika对于keyspace的统计是被动的,需要手动触发并不会立即输出,命令为:info keyspace [ 0|1 ],默认为0不触发,pika的keyspace统计是精确的。