设为首页 加入收藏

TOP

python redis使用(一)
2017-10-09 17:37:45 】 浏览:1030
Tags:python redis 使用

1,安装

pip install redis

 

2,基本使用

使用:

import redis

r = redis.Redis(host=’localhost’, port=6379, db=0)

r['test'] = ‘test’ #或者可以r.set(‘test’, ‘test’) 设置key

r.get(‘test’) #获取test的值

r.delete(‘test’) #删除这个key

r.flushdb() #清空数据库

r.keys() #列出所有key

r.exists(‘test’) #检测这个key是否存在

r.dbsize() #数据库中多少个条数

 

>>> import redis

>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)

>>> r = redis.StrictRedis(connection_pool = pool)

>>> r.set('foo', 'bar')

True

>>> r.get('foo')

'bar'

 

  

 

3.API参考

Redis 官方文档详细解释了每个命令(http://redis.io/commands)。redis-py 提供了两个实现这些命令的客户端类。StrictRedis 类试图遵守官方的命令语法,但也有几点例外:

·SELECT:没有实现。参见下面“线程安全”部分的解释。

·DEL:’del’ 是 Python 语法的保留关键字。因此redis-py 使用 “delete” 代替。

·CONFIG GET|SET:分别用 config_get 和 config_set 实现。

·MULTI/EXEC:作为 Pipeline 类的一部分来实现。若在调用pipeline 方法时指定use_transaction=True,在执行 pipeline 时会用 MULTI 和 EXEC 封装 pipeline 的操作。参见下面 Pipeline 部分。

·SUBSCRIBE/LISTEN: 和 pipeline 类似,由于需要下层的连接保持状态, PubSub 也实现成单独的类。调用 Redis 客户端的 pubsub 方法返回一个 PubSub 的实例,通过这个实例可以订阅频道或侦听消息。两个类(StrictRedis 和 PubSub 类)都可以发布(PUBLISH)消息。

除了上面的改变,StrictRedis 的子类 Redis,提供了对旧版本 redis-py 的兼容:

·LREM:参数 ‘num’ 和 ‘value’ 的顺序交换了一下,这样‘num’ 可以提供缺省值 0.

·ZADD:实现时 score 和 value 的顺序不小心弄反了,后来有人用了,就这样了

·SETEX: time 和 value 的顺序反了

注:最好不要用 Redis,这个类只是做兼容用的

 

 

4.详细说明

4.1 连接池

在后台,redis-py 采用了连接池(ConnectionPool)来管理对 Redis 服务器的连接。缺省情况下,每个Redis 实例都创建自己的连接池。也可以采用向 Redis 类的 connection_pool 参数传递已创建的连接池的方式。通过这种方式,可以实现客户端分片或精确控制连接的管理:

>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)

>>> r = redis.StrictRedis(connection_pool=pool)

  

4.2 连接

ConnectionPool 管理一组 Connection 实例。redis-py 提供两种类型的 Connection。缺省情况下,Connection 是一个普通的 TCP 连接。 UnixDomainSocketConnection 允许和服务器运行在同一个设备上的客户端通过 unix 套接字进行连接。要使用 UnixDomainSocketConnection 连接, 只需要通过unix_socket_path 参数传递一个 unix 套接字文件的字符串。另外,确保redis.conf 文件配置了unixsocket 参数(缺省情况下是注释掉的):

>>> r = redis.StrictRedis(unix_socket_path='/tmp/redis.sock')

  

也可以自己创建 Connection 子类。这个特性可以在使用异步框架时用于控制 socket 的行为。要使用自己的Connection 初始化客户端类,需要创建一个连接池,通 connection_class 参数把自己的类传递进去。传递的其它关键字参数会在初始化时传递给自定义的类:

>>> pool = redis.ConnectionPool(connection_class=YourConnectionClass, your_arg='...', ...)

  

4.3 分析器

分析类提供了控制如何对 Redis 服务器的响应进行分析的途径。redis-py 提供了两个分析类, PythonParser和 HiredisParser。缺省情况下,如果安装了 hiredis 模块, redis-py 会尝试使用 HiredisParser,否则使用 PythonParser。

Hiredis 是由 Redis 核心团队维护的 C 库。 Pieter Noordhuis&nb

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[Python] 糗事百科文本数据的抓取 下一篇Python——变量 || 基本数据类型 ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目