KVDB¶
服务概述¶
KVDB是新浪云开发的分布式key-value数据存储服务,用来支持公有云计算平台上的海量key-value存储。KVDB支持的存储容量很大,对每个用户支持100G的存储空间,可支持1,000,000,000条记录,用户可以用KVDB存放简单数据,如好友关系等。
KVDB是高性能高可靠存储,根据我们内部测试,读写都可以达到10w qps。KVDB采用无状态对等的分布式架构,在任一节点发生故障时,KVDB仍然保持正常运行。
服务限制¶
key的最大长度 | 200字节 |
value的最大长度 | 4M (默认启用压缩) |
mget获取的最大KEY个数 | 32 |
pkrget获取的最大KEY个数 | 100 |
API使用手册¶
-
class
sae.kvdb.
Error
¶ 通用错误
-
class
sae.kvdb.
Client
(debug=0)¶ debug 是否输出详细调试、错误信息到日志,默认关闭
-
set
(key, val, min_compress_len=0)¶ 设置key的值为val
参数: min_compress_len – 启用zlib.compress压缩val的最小长度,如果val的长度大于此值,则启用压缩,0表示不压缩。
-
add
(key, val, min_compress_len=0)¶ 同set,但只在key不存在时起作用
-
replace
(key, val, min_compress_len=0)¶ 同set,但只在key存在时起作用
-
delete
(key)¶ 删除key。
-
get
(key)¶ 从KVDB中获取一个key的值,存在返回key的值,不存在则返回None
-
get_multi
(keys, key_prefix='')¶ 从KVDB中一次获取多个key的值。返回一个key/value的dict。
参数: - keys – key的列表,类型必须为list。
- key_prefix – 所有key的前缀。请求时会在所有的key前面加上该前缀,返回值里所有的key都会去掉该前缀。
-
get_by_prefix
(prefix, limit=100, marker=None)¶ 从KVDB中查找指定前缀的 key/value pair。返回一个generator,yield的item为一个(key, value)的tuple。
参数: - prefix – 需要查找的key的前缀。
- limit – 最多返回的item个数,默认为100。
- marker – 指定从哪一个key开始继续查找,只返回该key后面的结果(该key不含在内)。
-
getkeys_by_prefix
(prefix, limit=100, marker=None)¶ 从KVDB中查找指定前缀的key。返回符合条件的key的generator。
参数: - prefix – 需要查找的key的前缀。
- limit – 最多返回的key的个数,默认为100。
- marker – 指定从哪一个key开始继续查找,只返回该key后面的结果(该key不含在内)。
-
disconnect_all
()¶ 关闭KVDB连接
-
使用示例¶
import sae.kvdb
kv = sae.kvdb.Client()
k = 'foo'
kv.set(k, 2)
kv.delete(k)
kv.add(k, 3)
kv.get(k)
kv.replace(k, 4)
kv.get(k)