zoukankan      html  css  js  c++  java
  • Redis的Python客户端redis-py

    1. 安装

    1. redis-py
    a. 使用easy_install
    1
    sudo easy_install redis
     b. 源码安装
    1
    2
    3
    cd redis-py
    python setup.py install
    2. Parser安装
    Parser可以控制如何解析redis响应的内容。redis-py包含两个Parser类,PythonParser和HiredisParser。默认,如果已经安装了hiredis模块,redis-py会使用HiredisParser,否则会使用PythonParser。
    HiredisParser是C编写的,由redis核心团队维护,性能要比PythonParser提高10倍以上,所以推荐使用。安装方法,使用easy_install:
    1
    easy_install hiredis

    2. 使用

    redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。
    1
    2
    3
    4
    5
    6
    7
    import redis
     
    r = redis.StrictRedis(host='127.0.0.1', port=9212)
    r.set('foo', 'hello')
    r.rpush('mylist', 'one')
    print r.get('foo')
    print r.rpop('mylist')
    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
    1
    2
    3
    4
    5
    6
    7
    8
    import redis
     
    pool = redis.ConnectionPool(host='127.0.0.1', port=9212)
    r = redis.Redis(connection_pool=pool)
    r.set('one', 'first')
    r.set('two', 'second')
    print r.get('one')
    print r.get('two')
    redis pipeline机制,可以在一次请求中执行多个命令,这样避免了多次的往返时延。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import redis
     
    pool = redis.ConnectionPool(host='127.0.0.1', port=9212)
    r = redis.Redis(connection_pool=pool)
    pipe = r.pipeline()
    pipe.set('one', 'first')
    pipe.set('two', 'second')
    pipe.execute()
     
    pipe.set('one'. 'first').rpush('list', 'hello').rpush('list', 'world').execute()
    redis-py默认在一次pipeline中的操作是原子的,要改变这种方式,可以传入transaction=False,
    1
    pipe = r.pipeline(transaction=False)
  • 相关阅读:
    快速幂模板
    部分有关素数的题
    POJ 3624 Charm Bracelet (01背包)
    51Nod 1085 背包问题 (01背包)
    POJ 1789 Truck History (Kruskal 最小生成树)
    HDU 1996 汉诺塔VI
    HDU 2511 汉诺塔X
    HDU 2175 汉诺塔IX (递推)
    HDU 2077 汉诺塔IV (递推)
    HDU 2064 汉诺塔III (递推)
  • 原文地址:https://www.cnblogs.com/moodlxs/p/3240212.html
Copyright © 2011-2022 走看看