Redis mcpack
mcpack
1.1 接口概述
import socket
from xlib import ral
send_dict = {"method":"SETEX","key":"ceshi", "value":"mykey value", "seconds":3}
rsp = ral.ral_request(("127.0.0.1", 6380), send_dict)
print rsp
"""
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': bytearray(b'OK')}}
"""
cmd
r: EXISTS key
r: TYPE key
w: DEL key
w: EXPIRE key seconds
w: EXPIREAT key timestamp
r: TTL key
w: PEXPIRE key milliseconds
w: PEXPIREAT key milli_timestamp
r: PTTL key
w: PERSIST key
r: GET key
w: SET key value
w: SETEX key seconds value
w: SETNX key value
w: APPEND key value
r: GETRANGE key start end
w: SETRANGE key start value
r: STRLEN key
w: GETSET key value
r: GETBIT key offset
w: SETBIT key offset value
w: INCR key
w: INCRBY key step
w: DECR key
w: DECRBY key step
r: HGET key field
w: HSET key field value
r: HMGET key +field
w: HMSET key +[ field value ](fields)
w: HSETNX key field value
w: HDEL key +field
r: HGETALL key : field value
r: HKEYS key
r: HVALS key
r: HLEN key
r: HEXISTS key field
w: HINCRBY key field step
w: LPUSH key +value
w: LPOP key
w: LPUSHX key value
w: RPUSH key +value
w: RPOP key
w: RPUSHX key value
r: LLEN key
r: LINDEX key index
r: LRANGE key start stop
w: LSET key index value
w: LREM key count value
w: LTRIM key start stop
w: LINSERTAFTER(LINSERT) key AFTER pivot value
w: LINSERTBEFORE(LINSERT) key BEFORE pivot value
w: SADD key +member
w: SREM key +member
r: SCARD key
r: SISMEMBER key member
r: SMEMBERS key
w: SPOP key
w: ZADD key +[ score member ](members)
w: ZREM key +member
r: ZCARD key
r: ZCOUNT key min max
w: ZINCRBY key step member
r: ZRANGE key start stop
r: ZRANGEWITHSCORES(ZRANGE) key start stop WITHSCORES : member score
r: ZREVRANGE key start stop
r: ZREVRANGEWITHSCORES(ZREVRANGE) key start stop WITHSCORES : member score
r: ZRANGEBYSCORE key min max [ LIMIT offset count ]
r: ZRANGEBYSCOREWITHSCORES(ZRANGEBYSCORE) key min max WITHSCORES [ LIMIT offset count ] : member score
r: ZREVRANGEBYSCORE key min max [ LIMIT offset count ]
r: ZREVRANGEBYSCOREWITHSCORES(ZREVRANGEBYSCORE) key min max WITHSCORES [ LIMIT offset count ] : member score
r: ZRANK key member
r: ZREVRANK key member
r: ZSCORE key member
w: ZREMRANGEBYRANK key start stop
w: ZREMRANGEBYSCORE key min max
1.2 Keys
1.2.1 EXISTS
$ Request
send_dict = {"method":"KEYS", "key":"ceshi"}
$ Response(exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
$ Response(not exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 0}}
1.2.2 TYPE
$ Request
send_dict = {"method":"TYPE","key":"ceshi"}
$ Response(exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': bytearray(b'string')}}
$ Response(not exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': bytearray(b'none')}}
1.2.3 DEL
$ Request
send_dict = {"method":"DEL","key":"ceshi"}
$ Response(exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
$ Response(not exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 0}}
1.2.4 EXPIRE
$ Request
send_dict={"method":"EXPIRE", "key":"ceshi", "seconds":20}
$ Response(exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
$ Response(not exists)
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 0}}
1.2.5 EXPIREAT
Redis Expireat 命令用于以 UNIX 时间戳(unix timestamp)格式设置 key 的过期时间。
$ Request
send_dict={"method":"EXPIREAT", "key":"ceshi", "timestamp":1400000000}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
1.2.6 TTL
$ Request
{'method': 'TTL', 'key': 'ceshi'}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': -2}}
1.2.7 PEXPIRE
以毫秒为单位设置生存时间;为 0不设置生存时间
$ Request
{'milliseconds': 20, 'method': 'PEXPIRE', 'key': 'ceshi'}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
1.2.8 PEXPIREAT
$ Request
{'milli_timestamp': 1555555555005, 'method': 'PEXPIREAT', 'key': 'ceshi'}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 1}}
1.2.9 PTTL
$ Request
{'method': 'PTTL', 'key': 'ceshi'}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': -2}}
1.2.10 PERSIST
$ Request
{'method': 'PERSIST', 'key': 'ceshi'}
$ Response
{u'err_no': 0, u'err_msg': u'OK', u'ret': {u'ceshi': 0}}
1.3 Strings
1.4 Lists
1.5 Hashes
1.6 Sets
1.7 Sorted Sets
1.8 批量接口
$ Request
send_dict = {
"method":"SETEX",
"reqs":[
{"key":"ceshi0", "value":"mykey value", "seconds":3},
{"key":"ceshi1", "value":"mykey value", "seconds":3},
{"key":"ceshi2", "value":"mykey value", "seconds":3}
]
}
$ Response
{
u'err_no': 0,
u'err_msg': u'OK',
u'ret': {
u'ceshi0': bytearray(b'OK'),
u'ceshi1': bytearray(b'OK'),
u'ceshi2': bytearray(b'OK')
}
}
可以把对多个 key 的请求,打包到一个 reqs 中,实现批量请求。批量的结果通过 key 进行索引。
如果 err_no 不是 0,则 ret、errors 可能同时存在;
ret 表示成功的部分
errors 表示失败的部分。
Last updated