redis python客户端(redis-py)分析
2016-06-13 11:55
344 查看
源代码结构
class StrictRedis
RESPONSE_CALLBACKS
构造/from_url/__init__
回调 set_response_callback
响应解析parse_response
流水线 pipeline
事务transaction
锁lock
订阅发布pubsub
执行命令execute_command
class pubsub->PubSubWorkerThread
BasePipeline/StrictPipeline -> pipe
lock -> setnx
Script->script load / eval
connectionPool->connection->BaseParser(PythonParser(->SocketBuffer)
/ HiredisParser(->Hiredis))
客户端构成: strictRedis类,与官方语法一致;Redis向后语法兼容
连接与连接池:连接池默认在底层生效,可用于目标连接,客户端分片,细粒度的链接管理;连接分为TCP连接和Unix本地套接字连接;自定义连接池(用于异步框架中控制套接字行为)
解析器(parsers):Hiredis(默认),
PythonRedis
响应回调:自定义回调REDIS_CALLBACKS
线程安全:禁用select;传递PubSub和Pipeline对象不安全
setinel支持:通过把连接池绑定到sentinel,实现master和slave对象的构造
scan迭代器
支持sentinel的redis
client的指南:根据sentinel地址和服务名,获取master(slave)地址
1.尝试连接可用的sentinel
2.
请求master地址(请求slave列表)
3
连接master,确认master身份
4.
上述任一步失败,重连
5
与master连接断掉,需要重新获取master地址并连接
6
sentinel自动更新:连接master后,获取sentinel列表,并在客户端更新
cluster
redis-py-cluster https://pypi.python.org/pypi/redis-py-cluster
基于官方的redis-rb-cluter移植过来的,符合redis集群规范。
class StrictRedis
RESPONSE_CALLBACKS
构造/from_url/__init__
回调 set_response_callback
响应解析parse_response
流水线 pipeline
事务transaction
锁lock
订阅发布pubsub
执行命令execute_command
class pubsub->PubSubWorkerThread
BasePipeline/StrictPipeline -> pipe
lock -> setnx
Script->script load / eval
connectionPool->connection->BaseParser(PythonParser(->SocketBuffer)
/ HiredisParser(->Hiredis))
客户端构成: strictRedis类,与官方语法一致;Redis向后语法兼容
连接与连接池:连接池默认在底层生效,可用于目标连接,客户端分片,细粒度的链接管理;连接分为TCP连接和Unix本地套接字连接;自定义连接池(用于异步框架中控制套接字行为)
解析器(parsers):Hiredis(默认),
PythonRedis
响应回调:自定义回调REDIS_CALLBACKS
线程安全:禁用select;传递PubSub和Pipeline对象不安全
setinel支持:通过把连接池绑定到sentinel,实现master和slave对象的构造
scan迭代器
支持sentinel的redis
client的指南:根据sentinel地址和服务名,获取master(slave)地址
1.尝试连接可用的sentinel
2.
请求master地址(请求slave列表)
3
连接master,确认master身份
4.
上述任一步失败,重连
5
与master连接断掉,需要重新获取master地址并连接
6
sentinel自动更新:连接master后,获取sentinel列表,并在客户端更新
cluster
redis-py-cluster https://pypi.python.org/pypi/redis-py-cluster
基于官方的redis-rb-cluter移植过来的,符合redis集群规范。
相关文章推荐
- Redis从不懂到装懂
- 在centos6.3用yum安装redis
- redis订阅发布模式
- 【Redis基础】Redis3.0集群问题集锦
- redis设置服务
- redis安装(windows下安装)
- Ubuntu14.04下安装redis
- Redis学习笔记二
- redis的持久化
- SHEEL脚本redis开机启动
- Redis单实例安装与配置
- 第三课、key的操作
- 第二课、redis安装和使用
- 第一课、redis的介绍和安装部署
- 在windows下和linux下安装redis
- .net中ddd设计模式之domainServices与redis构建redisServices的讨论
- 【Redis源码剖析】 - Redis持久化之AOF
- RedisHelper in C#
- 利用redis + lua解决抢红包高并发的问题
- redis-key2