Python客户端redis-py
因为本书主要使用Java语言作为编程语言,所以对Python的客户端redis-py不会太详细介绍,主要介绍以下几个方面:
- 获取redis-py
- redis-py的基本使用方法
- redis-py的Pipeline的使用
- redis-py的Lua脚本使用
-
获取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/sndymccurdy/redis-py/archive/2.10.5.zip unzip redis-2.10.5.zip cd redis-2.10.5 # 安装 redis-py python setup.py install
-
redis-py的基本使用方法
redis-py的使用方法也比较简单,下面将逐步介绍。
1)导入依赖库:
import redis
2)生成客户端连接:需要Redis的实例IP和端口两个参数:
client = redis.StrictRedis(host='127.0.0.1', port=6379)
3)执行命令:redis-py的API保留了RedisAPI的原始风格,所以使用起来不会有 不习惯的感觉:
# True client.set(key, "python-redis") # world client.get(key)
下面代码给出redis-py操作Redis五种数据结构的实例,输出结果写在注释中:
#1.string #输出结果:True client.set("hello", "world") #输出结果:world client.get("hello") #输出结果 1 clinet.incr("counter") #2.hash client.hset("myhash", "f1", "v1") client.hset("myhash", "f2", "v2") #输出结果:{'f1': 'v1', 'f2': 'v2'} client.hgetall("myhash") #3.list client.rpush("mylist", "1") client.rpush("mylist", "2") client.rpush("mylist", "3") #输出结果:['1', '2', '3'] client.lrange("mylist", 0, -1) #4.set client.sadd("myset", "a") clinet.sadd("myset", "b") client.sadd("myset", "a") #输出结果:set(['a', 'b']) client.smembers("myset") #5.zset client.zadd("myzset", "99", "tom") client.zadd("myzset", "66", "peter") client.zadd("myzset", "33", "james") #输出结果:[('james", 33.0), ('peter', 66.0), ('tom', 99.0)] client.zrange("myzset", 0, -1, withscores=True)
-
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()
下面将用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();
-
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
script_load和evalsha函数要一起使用,首先使用script_load将脚本加载到 Redis中,然后evalsha函数用来执行脚本的哈希值,它需要三个参数:
- scriptSha:脚本的SHA1。
- keyCount:键的个数。
- params:相关参数KEYS和ARGV。
本文由 Meridian 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 25,2019