forked from OpenAtomFoundation/pika
-
Notifications
You must be signed in to change notification settings - Fork 9
当前支持 redis 接口与阿里云 redis 接口的比较
KG.Xu edited this page Oct 10, 2017
·
17 revisions
以下列出的是阿里云 redis 支持但 pika 尚未支持的接口。数量大约为50个左右。
keys 相关 | 描述 |
---|---|
未提供支持 | dump, move, randomkey, rename, renamenx, restore, sort, object |
pexpire, pexpireat | 无法精确到毫秒,底层会自动截断按秒级别进行处理 |
scan | 会顺序迭代当前 db 的快照,由于 pika 允许重名五次,所以 scan 有优先输出顺序, 依次为:string -> hash -> list -> sortedset -> set; |
type | 由于 pika 允许重名五次,所以 type 有优先输出顺序,依次为: string -> hash -> list -> sortedset -> set,如果这个 key 在 string 中存在, 那么只输出 string,如果不存在,那么则输出 hash 的,依次类推。 |
操作 | 描述 |
---|---|
string | bitop, bitpos, getbit, setbit: 与 redis 不同,pika 的 bit 操作范围为218 (bitcount, msetnx, psetex) 未支持 |
list | (blpop, brpop, brpoplpush) 未支持 |
set | srandmember:pika 介绍提示时间复杂度为 O(n),耗时较多 |
ordered set |
zscore:目前支持的数据范围是 [-1013, 1013]。 精度支持 10-5,小于 redis 的数值精度。 |
pub/sub | 未提供任何支持 (publish, pubsub, subscribe, ...) |
transaction | 未提供任何支持 (exec, multi, watch, ...) |
connection | (auth, echo, select) 未支持 |
server | 除 config 外,未提供任何支持 (flushall, flushdb, dbsize, keys, ...) |
scripting | 未提供任何支持 (eval, script load, script kill, ...) |
问题 | 描述 |
---|---|
重名问题 | 由于 pika 每个类型独立运作, 所以允许重名。例如在 key abc 在 string 中存在的时候也同样允许在 hash 中存在,一个 key 最多重名 5 次(5 大类型),但在同一接口中是无法重名的。所以建议在使用的时候对于不同类型不要使用完全相同的 key; |
长度问题 | pika kv 的 key value 长度没有限制,其他数据结构 hash zset set list 的 key 长度限制 255, value 没有限制。 |
分库问题 | pika 不支持 redis 的多个库功能(db0,db1,db2),对于 pika 只有一个库,也就是 db0,select 命令在 pika 中可以执行,但实际上没有任何效果。 |
数据展示 | pika 对于 keyspace 的展示选择了分类型展示而非 redis 的分库展示(因为 pika 没有分库概念),pika 对于 keyspace 的统计是被动的,需要手动触发并不会立即输出, 命令为:info keyspace [ 0|1 ],默认为0不触发,pika 的 keyspace 统计是精确的。 |