• Redis入门完整教程:Python客户端redis-py


    因为本教程主要使用Java语言作为编程语言,所以对Python的客户端redis-
    py不会太详细介绍,主要介绍以下几个方面:
    ·获取redis-py。
    ·redis-py的基本使用方法。
    ·redis-py的Pipeline的使用。
    ·redis-py的Lua脚本使用。

    4.3.1 获取redis-py
    Redis官网提供了很多Python语言的客户端
    (http://redis.io/clients#python),但最被广泛认可的客户端是redis-py。
    redis-py需要Python2.7以上版本,有关Python的安装本教程不会介绍,主要介绍
    一下如何获取安装redis-py,方法有三种:
    第一,使用pip进行安装:
    pip install redis
    第二,使用easy_install进行安装:
    easy_install redis
    第三,使用源码安装:以2.10.5版本为例子进行说明,只需要如下四
    步:
    wget https:// github.com/andymccurdy/redis-py/archive/2.10.5.zip
    unzip redis-2.10.5.zip
    cd redis-2.10.5
    # 安装 redis-py
    python setup.py install

    4.3.2 redis-py的基本使用方法
    redis-py的使用方法也比较简单,下面将逐步骤介绍。
    1)导入依赖库:
    import redis
    2)生成客户端连接:需要Redis的实例IP和端口两个参数:
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    3)执行命令:redis-py的API保留了Redis API的原始风格,所以使用起
    来不会有不习惯的感觉:
    # True
    client.set(key, "python-redis")
    # world
    client.get(key)
    整个实例代码如下:
    import redis
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    key = "hello"
    setResult = client.set(key, "python-redis")
    print setResult
    value = client.get(key)
    print "key:" + key + ", value:" + value
    输出结果为:
    True
    key:hello, value:python-redis

    下面代码给出redis-py操作Redis五种数据结构的示例,输出结果写在注
    释中:

    1. #1.string
    2. # 输出结果: True
    3. client.set("hello","world")
    4. # 输出结果: world
    5. client.get("hello")
    6. # 输出结果: 1
    7. client.incr("counter")
    8. #2.hash
    9. client.hset("myhash","f1","v1")
    10. client.hset("myhash","f2","v2")
    11. # 输出结果: {'f1': 'v1', 'f2': 'v2'}
    12. client.hgetall("myhash")
    13. #3.list
    14. client.rpush("mylist","1")
    15. client.rpush("mylist","2")
    16. client.rpush("mylist","3")
    17. # 输出结果: ['1', '2', '3']
    18. client.lrange("mylist", 0, -1)
    19. #4.set
    20. client.sadd("myset","a")
    21. client.sadd("myset","b")
    22. client.sadd("myset","a")
    23. # 输出结果: set(['a', 'b'])
    24. client.smembers("myset")
    25. #5.zset
    26. client.zadd("myzset","99","tom")
    27. client.zadd("myzset","66","peter")
    28. client.zadd("myzset","33","james")
    29. # 输出结果: [('james', 33.0), ('peter', 66.0), ('tom', 99.0)]
    30. client.zrange("myzset", 0, -1, withscores=True)

    4.3.3 redis-py中Pipeline的使用方法
    redis-py支持Redis的Pipeline功能,下面用一个简单的示例进行说明。
    1)引入依赖,生成客户端连接:
    import redis
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    2)生成Pipeline:注意client.pipeline包含了一个参数,如果
    transaction=False代表不使用事务:
    pipeline = client.pipeline(transaction=False)
    3)将命令封装到Pipeline中,此时命令并没有真正执行:
    pipeline.set("hello","world")
    pipeline.incr("counter")
    4)执行Pipeline:
    #[True, 3]
    result = pipeline.execute()
    和4.2.4小节一样,将用redis-py的Pipeline实现mdel功能:
    import redis
    def mdel( keys ):
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    pipeline = client.pipeline(transaction=False)
    for key in keys:
    print pipeline.delete(key)
    return pipeline.execute();

    4.3.4 redis-py中的Lua脚本使用方法
    redis-py中执行Lua脚本和redis-cli十分类似,redis-py提供了三个重要的
    函数实现Lua脚本的执行:
    eval(String script, int keyCount, String... params)
    script_load(String script)
    evalsha(String sha1, int keyCount, String... params :
    eval函数有三个参数,分别是:
    ·script:Lua脚本内容。
    ·keyCount:键的个数。
    ·params:相关参数KEYS和ARGV。
    以一个最简单的Lua脚本为例进行说明:
    return redis.call('get',KEYS[1])
    在redis-py中执行,方法如下:
    import redis
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    script = "return redis.call('get',KEYS[1])"
    # 输出结果为 world
    print client.eval(script,1,"hello")
    script_load和evalsha函数要一起使用,首先使用script_load将脚本加载到
    Redis中,代码如下:
    scriptSha = client.script_load(script)

    evalsha函数用来执行脚本的哈希值,它需要三个参数:
    ·scriptSha:脚本的SHA1。
    ·keyCount:键的个数。
    ·params:相关参数KEYS和ARGV。
    执行效果如下:
    print jedis.evalsha(scriptSha, 1, "hello");
    完整代码如下:
    import redis
    client = redis.StrictRedis(host='127.0.0.1', port=6379)
    script = "return redis.call('get',KEYS[1])"
    scriptSha = client.script_load(script)
    print client.evalsha(scriptSha, 1, "hello");

  • 相关阅读:
    [JDK工具-10] jvisualvm 多合一故障处理工具
    Idea完全卸载步骤
    (一)Ansible-介绍及安装
    通俗理解计算机操作系统的作用
    在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能
    hot100----字串
    深度学习(Python)学习笔记2
    B_QuRT_User_Guide(32)
    day19 爬虫和前端
    快鲸SCRM如何助力企业高效运营私域流量?
  • 原文地址:https://blog.csdn.net/tysonchiu/article/details/125628036