Metadata-Version: 1.1
Name: custom-redis
Version: 1.0.11
Summary: python实现简单redis，实现redis基本功能以及可插拔数据结构。 
Home-page: https://www.github.com/ShichaoMa/custom_redis
Author: cn
Author-email: 308299269@qq.com
License: MIT
Description: custom_redis

        ============

        DESCRIPTION

        -----------

        - python实现简单redis，实现redis基本功能以及可插拔数据结构

            -主要功能

                1. 通过继承DataStore类，可以定制个性化数据类型，通过调用redis类的install方法安装数据类型，目前已实现的数据类型有str, set, queue, hash, list

                #. Redis 的keys, expire, ttl, del等功能已实现

                #. 数据持久化功能已实现, 数据库文件保存在当前目录

        

        INSTALL

        -------

        windows && ubuntu

        >>>>>>>>>>>>>>>>>

        ::

        

            git clone https://github.com/ShichaoMa/custom_redis.git

            sudo python setup.py install

        

            or

        

            sudo pip install custom-redis

        

        START

        >>>>>

        ::

        

            custom-redis-server --host "127.0.0.1" --port 6379

        

        HELLOWORD

        >>>>>>>>>

        - demo1

        ::

        

            custom-redis-client -c keys

            [u'a']

            custom-redis-client -c zcard a

            1

            custom-redis-client -c zpop a

            2

        

        - demo2

        ::

        

            >>> from custom_redis.client import Redis

            >>> r = Redis("127.0.0.1", 6379)

            >>> r.zadd('a', 3, 'aaa')

            ''

            >>> r.zadd('b', 4, 'bbb')

            ''

            >>> r.zadd('a', 1, 'ccc')

            ''

            >>> r.keys()

            [u'a', u'b']

            >>> r.expire('b', 10)

            ''

            >>> import time

            >>> time.sleep(10)

            >>> r.ttl('b')

            '-1'

            >>> r.keys()

            [u'a']

        

        - demo3

        

            - 服务端实现

            - 数据类型个性化定制

            - 参见default_data_types.py

            - 安装数据类型

            ::

        

                cr = CustomRedis.parse_args()

                cr.install(datatype=datatype())

                cr.set_logger()

                cr.start()

        

        - demo4

        

            - 客户端实现

            - 在functions.CMD_DICT中配置指令

            ::

        

                "hgetall":  # 指令名

                {

                "args": ["name"], # 指令所需参数

                "send": lambda *args: "%s<->" % args[0], # 转换函数，将指令所需参数转换成发送报文

                "recv": lambda data: json.loads(data), # 转换函数，将接收到的报文转换成所需数据类型，若是简单字符串则无需提供

                }

                "hincrby": {

                "args": ["name", "key", "value"],

                "send": lambda *args:"%s<->%s"%(args[0], json.dumps(dict([args[1:]]))),

                "default":[1] # 指令所需参数的默认值， 从后往前排列 如：1代表value的值

                },

        

            - 发送报文的格式："func_name#-*-#key<->value#-*-#1" # 如 "hincrby#-*-#a<->{'b':1}#-*-#1"

            - 最后一位1代表keep-alive, 否则为空

            - key:在redis中存储的key，在上例中所指的是参数中的name

            - value:要往redis中存储的值 如json.dumps("key":"value")

            - 接收报文格式："200#-*-#success#-*-#data"

            - 200为响应码

                -  200：成功

                -  404：没有找到方法

                -  502：Empty

                -  503：服务器异常

            - success为响应信息

            - data为recv中要处理的接收数据

        

        
Keywords: custom redis
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
