zoukankan      html  css  js  c++  java
  • Redis 3. 与python交互

    3. 与python交互

    安装包

    sudo pip install redis
    
    • 使用源码安装
    unzip redis-py-master.zip
    cd redis-py-master
    sudo python setup.py install
    

    交互代码

    • 引入模块
    import redis
    
    • 连接
    try:
        r=redis.StrictRedis(host='localhost',port=6379)
    except Exception,e:
        print e.message
    
    • 方式一:根据数据类型的不同,调用相应的方法,完成读写
    • 更多方法同前面学的命令
    r.set('name','hello')
    r.get('name')
    
    • 方式二:pipline
    • 缓冲多条命令,然后一次性执行,减少服务器-客户端之间TCP数据库包,从而提高效率
    pipe = r.pipeline()
    pipe.set('name', 'world')
    pipe.get('name')
    pipe.execute()
    

    封装

    • 连接redis服务器部分是一致的
    • 这里将string类型的读写进行封装
    import redis
    
    
    class RedisHelper(object):
        def __init__(self, host='localhost', port=6379):
            self.__redis = redis.StrictRedis(host, port, password='123456')
    
        def get(self, key):
            if self.__redis.exists(key):
                return self.__redis.get(key)
            else:
                return ""
    
        def set(self, key, value):
            self.__redis.set(key, value)
    
    
    def test():
        """批量写:缓冲多条命令,然后一次性执行,减少服务器-客户端之间TCP数据库包,从而提高效率"""
        r = redis.StrictRedis('localhost', 6379, password='123456')
        pipe = r.pipeline()
        pipe.set('py1', 'hello1')
        pipe.set('py2', 'hello2')
        pipe.execute()
    
    
    if __name__ == '__main__':
        rh = RedisHelper()
        rh.set('mykey1', 'myval1')
        rh.set('mykey2', 'myval2')
        rh.set('mykey3', 'myval3')
        print(rh.get('mykey2').decode('utf8'))
     
  • 相关阅读:
    C++容器不要类型转换
    栈区、堆区、全局区、文字常量区、程序代码区
    C++数据类型字节数
    Exception-Safe Generic Containers
    饭碗是要靠抢的
    Wireshark抓包实例分析TCP重复ACK与乱序
    OSPF
    孩子,我该让你更好的长大!
    云,除了卖,我们还剩下什么?
    动态路由3--链路状态路由选择协议
  • 原文地址:https://www.cnblogs.com/LiuYanYGZ/p/12242155.html
Copyright © 2011-2022 走看看