🦋
Butterfly 用户手册
  • Introduction
  • 一 前言
  • 二 开始
    • 安装部署
    • 五分钟体验指南
    • 单机使用手册
    • 应用规范
      • handler specs
      • middleware specs
      • xingqiao_plugin specs
      • yiqiu_program specs
  • 三 客户端功能
    • MySQL 原生协议
    • MySQL ORM
    • Redis 原生协议
      • redis_config
      • redis_tls
    • Redis ORM
    • Redis mcpack
    • Localcache
    • Kazoo
  • 四 应用(通用服务)
    • API JSON 规范
    • 异步任务 BaiChuan(百川)
    • 任务调度 RuQi(如期)
    • 任务编排 XingQiao(星桥)
    • 配置管理 WuXing(五行)
    • 运筹决策 BaiCe(百策)
  • 五 部署运维
    • 单机容器化部署
    • 监控
    • 异常排查
      • CPU Load spike every 7 hours
    • 升级
    • 安全
    • 其他
  • 六 前端
    • butterfly_template
    • butterfly_fe
    • butterfly-admin(json2web)
      • amis
      • sso
      • pangu
    • NoahV
    • PyWebIO
  • 七 潘多拉魔盒
    • 装饰器
      • localcache_decorator
      • retry_decorator
      • custom_decorator
      • command2http_decorator
    • 算法
      • 算法-分位数
      • 算法-变异系数
    • 实用工具
      • host_util
      • shell_util
      • http_util
      • time_util
      • random_util
      • concurrent
      • jsonschema
      • blinker
      • toml
      • command_util
      • config_util
      • picobox
      • 对称加密
        • des
        • aes
      • ascii_art
        • ttable
        • chart
      • business_rules
      • python-mysql-replication
      • dict_util
    • 中间件
      • middleware_status
      • middleware_whitelist
    • test_handler.py
  • 八 最佳实践
    • 分布式架构
    • Code practice
    • Log practice
    • Daemon process
  • 附录
Powered by GitBook
On this page
  • 1.1 接口概述
  • 1.2 Keys
  • 1.2.1 EXISTS
  • 1.2.2 TYPE
  • 1.2.3 DEL
  • 1.2.4 EXPIRE
  • 1.2.5 EXPIREAT
  • 1.2.6 TTL
  • 1.2.7 PEXPIRE
  • 1.2.8 PEXPIREAT
  • 1.2.9 PTTL
  • 1.2.10 PERSIST
  • 1.3 Strings
  • 1.4 Lists
  • 1.5 Hashes
  • 1.6 Sets
  • 1.7 Sorted Sets
  • 1.8 批量接口
  1. 三 客户端功能

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 表示失败的部分。

PreviousRedis ORMNextLocalcache

Last updated 1 year ago