- 浏览: 564708 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (618)
- java (109)
- Java web (43)
- javascript (52)
- js (15)
- 闭包 (2)
- maven (8)
- 杂 (28)
- python (47)
- linux (51)
- git (18)
- (1)
- mysql (31)
- 管理 (1)
- redis (6)
- 操作系统 (12)
- 网络 (13)
- mongo (1)
- nginx (17)
- web (8)
- ffmpeg (1)
- python安装包 (0)
- php (49)
- imagemagic (1)
- eclipse (21)
- django (4)
- 学习 (1)
- 书籍 (1)
- uml (3)
- emacs (19)
- svn (2)
- netty (9)
- joomla (1)
- css (1)
- 推送 (2)
- android (6)
- memcached (2)
- docker、 (0)
- docker (7)
- go (1)
- resin (1)
- groovy (1)
- spring (1)
最新评论
-
chokee:
...
Spring3 MVC 深入研究 -
googleyufei:
很有用, 我现在打算学学Python. 这些资料的很及时.
python的几个实用网站(转的) -
hujingwei1001:
太好了找的就是它
easy explore -
xiangtui:
例子举得不错。。。学习了
java callback -
幻影桃花源:
太好了,謝謝
Spring3 MVC 深入研究
翻译:redis-py 说明文件 (2012-05-30 17:55:52)转载▼
标签: 杂谈
原文:https://github.com/andymccurdy/redis-py
redis-py¶
Redis key-value 数据库的 Python 接口。
安装¶
$ sudo pip install redis
或采用下面方法(最好是用 pip):
$ sudo easy_install redis
从源代码安装:
$sudo python setup.py install
入门¶
>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'
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,这个类只是做兼容用的
详细说明¶
连接池¶
在后台,redis-py 采用了连接池(ConnectionPool)来管理对 Redis 服务器的连接。缺省情况下,每个 Redis 实例都创建自己的连接池。也可以采用向 Redis 类的 connection_pool 参数传递已创建的连接池的方式。通过这种方式,可以实现客户端分片或精确控制连接的管理:
>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
>>> r = redis.Redis(connection_pool=pool)
连接¶
ConnectionPool 管理一组 Connection 实例。redis-py 提供两种类型的 Connection。缺省情况下,Connection 是一个普通的 TCP 连接。 UnixDomainSocketConnection 允许和服务器运行在同一个设备上的客户端通过 unix 套接字进行连接。要使用 UnixDomainSocketConnection 连接, 只需要通过 unix_socket_path 参数传递一个 unix 套接字文件的字符串。另外,确保redis.conf 文件配置了 unixsocket 参数(缺省情况下是注释掉的):
>>> r = redis.Redis(unix_socket_path='/tmp/redis.sock')
也可以自己创建 Connection 子类。这个特性可以在使用异步框架时用于控制 socket 的行为。要使用自己的 Connection 初始化客户端类,需要创建一个连接池,通 connection_class 参数把自己的类传递进去。传递的其它关键字参数会在初始化时传递给自定义的类:
>>> pool = redis.ConnectionPool(connection_class=YourConnectionClass,
your_arg='...', ...)
分析器¶
分析类提供了控制如何对 Redis 服务器的响应进行分析的途径。redis-py 提供了两个分析类, PythonParser 和 HiredisParser。缺省情况下,如果安装了 hiredis 模块, redis-py 会尝试使用 HiredisParser,否则使用 PythonParser。
Hiredis 是由 Redis 核心团队维护的 C 库。 Pieter Noordhuis 创建了 Python 的实现。分析 Redis 服务器的响应时,Hiredis 可以提供 10 倍的速度提升。性能提升在获取大量数据时优为明显,比如 LRANGE 和 SMEMBERS 操作。
和 redis-py 一样,Hiredis 在 Pypi 中就有,可以通过 pip 或 easy_install 安装:
$ pip install hiredis
或:
$ easy_install hiredis
响应回调函数¶
客户端类使用一系列回调函数来把 Redis 响应转换成合适的 Python 类型。有些回调函数在 Redis 客户端类的字典 RESPONSE_CALLBACKS 中定义。
通过 set_response_callback 方法可以把自定义的回调函数添加到单个实例。这个方法接受两个参数:一个命令名和一个回调函数。通过这种方法添加的回调函数只对添加到的对象有效。要想全局定义或重载一个回调函数,应该创建 Redis 客户端的子类并把回调函数添加到类的 RESPONSE_CALLBACKS(原文误为 REDIS_CALLBACKS) 中。
响应回调函数至少有一个参数:Redis 服务器的响应。要进一步控制如何解释响应,也可以使用关键字参数。这些关键字参数在对 execute_command 的命令调用时指定。通过 “withscores” 参数,ZRANGE 演示了回调函数如何使用关键字参数。
线程安全¶
Redis 客户端实例可以安全地在线程间共享。从内部实现来说,只有在命令执行时才获取连接实例,完成后直接返回连接池,命令永不修改客户端实例的状态。
但是,有一点需要注意:SELECT 命令。SELECT 命令允许切换当前连接使用的数据库。新的数据库保持被选中状态,直到选中另一个数据库或连接关闭。这会导致在返回连接池时,连接可能指定了别的数据库。
因此,redis-py 没有在客户端实例中实现 SELECT 命令。如果要在同一个应用中使用多个 Redis 数据库,应该给第一个数据库创建独立的客户端实例(可能也需要独立的连接池)。
在线程间传递 PubSub 和 Pipeline 对象是不安全的。
Pipeline¶
Pipeline 是 Redis 基类的一个子类,支持在一个请求里发送缓冲的多个命令。通过减少客户端和服务器之间往来的数据包,可以大大提高命令组的性能。
Pipeline 的使用非常简单:
>>> r = redis.Redis(...)
>>> r.set('bing', 'baz')
>>> # Use the pipeline() method to create a pipeline instance
>>> pip3 = r.pipeline()
>>> # The following SET commands are buffered
>>> pipe.set('foo', 'bar')
>>> pipe.get('bing')
>>> # the EXECUTE call sends all bufferred commands to the server, returning
>>> # a list of responses, one for each command.
>>> pipe.execute()
[True, 'baz']
为了方便使用,所有缓冲到 pipeline 的命令返回 pipeline 对象本身。因此调用可以链起来:
>>> pipe.set('foo', 'bar').sadd('faz', 'baz').incr('auto_number').execute()
[True, True, 6]
另外,pipeline 也可以保证缓冲的命令组做为一个原子操作。缺省就是这种模式。要使用命令缓冲,但禁止 pipeline 的原子操作属性,可以关掉 transaction:
>>> pipe = r.pipeline(transaction=False)
一个常见的问题是:在进行原子事务操作前需要从 Redis 中获取事务中要用的数据。比如,假设 INCR 命令不存在,但我们需要用 Python 创建一个原子版本的 INCR。
一个不成熟的实现是获取值(GET),在 Python 中增一, 设置(SET)新值。但是,这不是原子操作,因为多个客户端可能在同一时间做这件事,每一个都通过 GET 获取同一个值。
WATCH 命令提供了在开始事务前监视一个或多个键的能力。如果这些键中的任何一个在执行事务前发生改变,整个事务就会被取消并抛出 WatchError 异常。要实现我们的客户 INCR 命令,可以按下面的方法操作:
>>> with r.pipeline() as pipe:
... while 1:
... try:
... # 对序列号的键进行 WATCH
... pipe.watch('OUR-SEQUENCE-KEY')
... # WATCH 执行后,pipeline 被设置成立即执行模式直到我们通知它
... # 重新开始缓冲命令。
... # 这就允许我们获取序列号的值
... current_value = pipe.get('OUR-SEQUENCE-KEY')
... next_value = current_value + 1
... # 现在我们可以用 MULTI 命令把 pipeline 设置成缓冲模式
... pipe.multi()
... pipe.set('OUR-SEQUENCE-KEY', next_value)
... # 最后,执行 pipeline (set 命令)
... pipe.execute()
... # 如果执行时没有抛出 WatchError,我们刚才所做的确实“原子地”
... # 完成了
... break
... except WatchError:
... # 一定是其它客户端在我们开始 WATCH 和执行 pipeline 之间修改了
... # 'OUR-SEQUENCE-KEY',我们最好的选择是重试
... continue
注意,因为在整个 WATCH 过程中,Pipeline 必须绑定到一个连接,必须调用 reset() 方法确保连接返回连接池。如果 Pipeline 用作 Context Manager(如上面的例子所示), reset() 会自动调用。当然,也可以用手动的方式明确调用 reset():
>>> pipe = r.pipeline()
>>> while 1:
... try:
... pipe.watch('OUR-SEQUENCE-KEY')
... ...
... pipe.execute()
... break
... except WatchError:
... continue
... finally:
... pipe.reset()
重点(译者注):
·WATCH 执行后,pipeline 被设置成立即执行模式
·用 MULTI 命令把 pipeline 设置成缓冲模式
·要么使用 with,要么调用 reset()
有一个简便的名为“transaction”的方法来处理这种处理和在 WatchError 重试的模式。它的参数是一个可执行对象和要 WATCH 任意个数的键,其中可执行对象接受一个 pipeline 对象做为参数。上面的客户端 INCR 命令可以重写如下(更可读):
>>> def client_side_incr(pipe):
... current_value = pipe.get('OUR-SEQUENCE-KEY')
... next_value = current_value + 1
... pipe.multi()
... pipe.set('OUR-SEQUENCE-KEY', next_value)
>>>
>>> r.transaction(client_side_incr, 'OUR-SEQUENCE-KEY')
版本计划¶
redis-py 跟随 Redis 发布版本。如 redis-py 2.0.0 应该支持 Redis 2.0.0 的所有命令。
作者¶
redis-py 由 Andy McCurdy (sedrik@gmail.com) 开发并维护。项目地址在:http://github.com/andymccurdy/redis-py
特别鸣谢:
·Ludovico Magnocavallo, Python Redis 客户端的原作者, 其中一些 socket 代码现在还在使用。
·Alexander Solovyov 提供通用响应回调系统的思想。
·Paul Hubbard for initial packaging support.
标签: 杂谈
原文:https://github.com/andymccurdy/redis-py
redis-py¶
Redis key-value 数据库的 Python 接口。
安装¶
$ sudo pip install redis
或采用下面方法(最好是用 pip):
$ sudo easy_install redis
从源代码安装:
$sudo python setup.py install
入门¶
>>> import redis
>>> r = redis.StrictRedis(host='localhost', port=6379, db=0)
>>> r.set('foo', 'bar')
True
>>> r.get('foo')
'bar'
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,这个类只是做兼容用的
详细说明¶
连接池¶
在后台,redis-py 采用了连接池(ConnectionPool)来管理对 Redis 服务器的连接。缺省情况下,每个 Redis 实例都创建自己的连接池。也可以采用向 Redis 类的 connection_pool 参数传递已创建的连接池的方式。通过这种方式,可以实现客户端分片或精确控制连接的管理:
>>> pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
>>> r = redis.Redis(connection_pool=pool)
连接¶
ConnectionPool 管理一组 Connection 实例。redis-py 提供两种类型的 Connection。缺省情况下,Connection 是一个普通的 TCP 连接。 UnixDomainSocketConnection 允许和服务器运行在同一个设备上的客户端通过 unix 套接字进行连接。要使用 UnixDomainSocketConnection 连接, 只需要通过 unix_socket_path 参数传递一个 unix 套接字文件的字符串。另外,确保redis.conf 文件配置了 unixsocket 参数(缺省情况下是注释掉的):
>>> r = redis.Redis(unix_socket_path='/tmp/redis.sock')
也可以自己创建 Connection 子类。这个特性可以在使用异步框架时用于控制 socket 的行为。要使用自己的 Connection 初始化客户端类,需要创建一个连接池,通 connection_class 参数把自己的类传递进去。传递的其它关键字参数会在初始化时传递给自定义的类:
>>> pool = redis.ConnectionPool(connection_class=YourConnectionClass,
your_arg='...', ...)
分析器¶
分析类提供了控制如何对 Redis 服务器的响应进行分析的途径。redis-py 提供了两个分析类, PythonParser 和 HiredisParser。缺省情况下,如果安装了 hiredis 模块, redis-py 会尝试使用 HiredisParser,否则使用 PythonParser。
Hiredis 是由 Redis 核心团队维护的 C 库。 Pieter Noordhuis 创建了 Python 的实现。分析 Redis 服务器的响应时,Hiredis 可以提供 10 倍的速度提升。性能提升在获取大量数据时优为明显,比如 LRANGE 和 SMEMBERS 操作。
和 redis-py 一样,Hiredis 在 Pypi 中就有,可以通过 pip 或 easy_install 安装:
$ pip install hiredis
或:
$ easy_install hiredis
响应回调函数¶
客户端类使用一系列回调函数来把 Redis 响应转换成合适的 Python 类型。有些回调函数在 Redis 客户端类的字典 RESPONSE_CALLBACKS 中定义。
通过 set_response_callback 方法可以把自定义的回调函数添加到单个实例。这个方法接受两个参数:一个命令名和一个回调函数。通过这种方法添加的回调函数只对添加到的对象有效。要想全局定义或重载一个回调函数,应该创建 Redis 客户端的子类并把回调函数添加到类的 RESPONSE_CALLBACKS(原文误为 REDIS_CALLBACKS) 中。
响应回调函数至少有一个参数:Redis 服务器的响应。要进一步控制如何解释响应,也可以使用关键字参数。这些关键字参数在对 execute_command 的命令调用时指定。通过 “withscores” 参数,ZRANGE 演示了回调函数如何使用关键字参数。
线程安全¶
Redis 客户端实例可以安全地在线程间共享。从内部实现来说,只有在命令执行时才获取连接实例,完成后直接返回连接池,命令永不修改客户端实例的状态。
但是,有一点需要注意:SELECT 命令。SELECT 命令允许切换当前连接使用的数据库。新的数据库保持被选中状态,直到选中另一个数据库或连接关闭。这会导致在返回连接池时,连接可能指定了别的数据库。
因此,redis-py 没有在客户端实例中实现 SELECT 命令。如果要在同一个应用中使用多个 Redis 数据库,应该给第一个数据库创建独立的客户端实例(可能也需要独立的连接池)。
在线程间传递 PubSub 和 Pipeline 对象是不安全的。
Pipeline¶
Pipeline 是 Redis 基类的一个子类,支持在一个请求里发送缓冲的多个命令。通过减少客户端和服务器之间往来的数据包,可以大大提高命令组的性能。
Pipeline 的使用非常简单:
>>> r = redis.Redis(...)
>>> r.set('bing', 'baz')
>>> # Use the pipeline() method to create a pipeline instance
>>> pip3 = r.pipeline()
>>> # The following SET commands are buffered
>>> pipe.set('foo', 'bar')
>>> pipe.get('bing')
>>> # the EXECUTE call sends all bufferred commands to the server, returning
>>> # a list of responses, one for each command.
>>> pipe.execute()
[True, 'baz']
为了方便使用,所有缓冲到 pipeline 的命令返回 pipeline 对象本身。因此调用可以链起来:
>>> pipe.set('foo', 'bar').sadd('faz', 'baz').incr('auto_number').execute()
[True, True, 6]
另外,pipeline 也可以保证缓冲的命令组做为一个原子操作。缺省就是这种模式。要使用命令缓冲,但禁止 pipeline 的原子操作属性,可以关掉 transaction:
>>> pipe = r.pipeline(transaction=False)
一个常见的问题是:在进行原子事务操作前需要从 Redis 中获取事务中要用的数据。比如,假设 INCR 命令不存在,但我们需要用 Python 创建一个原子版本的 INCR。
一个不成熟的实现是获取值(GET),在 Python 中增一, 设置(SET)新值。但是,这不是原子操作,因为多个客户端可能在同一时间做这件事,每一个都通过 GET 获取同一个值。
WATCH 命令提供了在开始事务前监视一个或多个键的能力。如果这些键中的任何一个在执行事务前发生改变,整个事务就会被取消并抛出 WatchError 异常。要实现我们的客户 INCR 命令,可以按下面的方法操作:
>>> with r.pipeline() as pipe:
... while 1:
... try:
... # 对序列号的键进行 WATCH
... pipe.watch('OUR-SEQUENCE-KEY')
... # WATCH 执行后,pipeline 被设置成立即执行模式直到我们通知它
... # 重新开始缓冲命令。
... # 这就允许我们获取序列号的值
... current_value = pipe.get('OUR-SEQUENCE-KEY')
... next_value = current_value + 1
... # 现在我们可以用 MULTI 命令把 pipeline 设置成缓冲模式
... pipe.multi()
... pipe.set('OUR-SEQUENCE-KEY', next_value)
... # 最后,执行 pipeline (set 命令)
... pipe.execute()
... # 如果执行时没有抛出 WatchError,我们刚才所做的确实“原子地”
... # 完成了
... break
... except WatchError:
... # 一定是其它客户端在我们开始 WATCH 和执行 pipeline 之间修改了
... # 'OUR-SEQUENCE-KEY',我们最好的选择是重试
... continue
注意,因为在整个 WATCH 过程中,Pipeline 必须绑定到一个连接,必须调用 reset() 方法确保连接返回连接池。如果 Pipeline 用作 Context Manager(如上面的例子所示), reset() 会自动调用。当然,也可以用手动的方式明确调用 reset():
>>> pipe = r.pipeline()
>>> while 1:
... try:
... pipe.watch('OUR-SEQUENCE-KEY')
... ...
... pipe.execute()
... break
... except WatchError:
... continue
... finally:
... pipe.reset()
重点(译者注):
·WATCH 执行后,pipeline 被设置成立即执行模式
·用 MULTI 命令把 pipeline 设置成缓冲模式
·要么使用 with,要么调用 reset()
有一个简便的名为“transaction”的方法来处理这种处理和在 WatchError 重试的模式。它的参数是一个可执行对象和要 WATCH 任意个数的键,其中可执行对象接受一个 pipeline 对象做为参数。上面的客户端 INCR 命令可以重写如下(更可读):
>>> def client_side_incr(pipe):
... current_value = pipe.get('OUR-SEQUENCE-KEY')
... next_value = current_value + 1
... pipe.multi()
... pipe.set('OUR-SEQUENCE-KEY', next_value)
>>>
>>> r.transaction(client_side_incr, 'OUR-SEQUENCE-KEY')
版本计划¶
redis-py 跟随 Redis 发布版本。如 redis-py 2.0.0 应该支持 Redis 2.0.0 的所有命令。
作者¶
redis-py 由 Andy McCurdy (sedrik@gmail.com) 开发并维护。项目地址在:http://github.com/andymccurdy/redis-py
特别鸣谢:
·Ludovico Magnocavallo, Python Redis 客户端的原作者, 其中一些 socket 代码现在还在使用。
·Alexander Solovyov 提供通用响应回调系统的思想。
·Paul Hubbard for initial packaging support.
发表评论
-
Django静态文件处理总结
2015-05-13 13:59 538原文地址:http://blog.csdn.net/wenxu ... -
原 异步非阻塞机制与多线程阻塞机制在处理并发耗时等待任务上的效率对比分析
2015-04-21 10:05 696原文地址:http://my.oschina.net/mall ... -
Django报错“_mysql_exceptions.Warning: Incorrect string value: ‘\xE6\xB5…’ for colu
2015-03-25 15:50 1000原文地址:http://www.tuicool.com/art ... -
django使用mysql时的中文存储问题 - [python]
2015-03-25 15:36 1505原文地址:http://www.blogbus.com/831 ... -
NIO学习笔记——解决“服务器端cpu占用率高”
2015-01-29 10:17 991原文地址:http://blog.csdn ... -
python 调用 php 实例
2014-06-23 14:09 2626原文地址:http://hi.baidu.com/ji_hai ... -
php调用python
2014-06-23 14:08 793原文地址:http://blog.163.com/darwin ... -
uwsgi python ssl编译问题记录
2014-06-19 14:24 878uwsgi python ssl编译问题记录 发表于6个月前( ... -
python2.7 安装ssl模块
2014-06-19 14:22 3220python2.7 安装ssl模块 2012-02-28 13 ... -
Centos6.5下升级Python 2.6.6 to python 2.7.3
2014-06-19 13:53 655Centos6.5下升级Python 2.6.6 to pyt ... -
关于Redis的Python客户端的连接池问题
2014-06-04 10:21 626关于Redis的Python客户端的连接池问题 在一 ... -
Windows下 Python 安装包的配置
2014-03-22 10:23 6571、下载安装 Python python-2.7.2.msi ... -
[翻译]深入理解Tornado——一个异步web服务器
2014-03-07 15:16 1643[翻译]深入理解Tornado— ... -
多版本Python共存[支持使用pip安装包]
2014-02-28 10:59 1146多版本Python共存[支持使 ... -
Django 数据库访问性能优化
2013-09-05 15:22 684Django 数据库访问性 ... -
Python六大开源框架对比:Web2py略胜一筹
2013-08-21 11:29 828Python是一门动态、面向对象语言。其最初就是作为一门面向 ... -
Python 代码调试技巧
2013-08-15 18:11 873使用 pdb 进行调试 pdb 是 python 自带的 ... -
python urlencode 编码
2013-07-05 13:28 964urlencode 调用方法 urlencode的参 ... -
window下使用virtualenv
2013-06-30 15:26 1111--- window下使用virtualenv -- ... -
浅析python的metaclass
2013-06-30 11:12 811分享下自己对python的met ...
相关推荐
而`redis-py-master.zip`是一个包含Python版本的Redis客户端库——redis-py的源代码压缩包。这个库使得Python开发者能够方便地与Redis服务器进行交互。 `redis-py`是Python社区广泛使用的Redis客户端,它提供了丰富...
《Redis-Py-Cluster:Python中的Redis集群库详解》 Redis-Py-Cluster是一个Python库,专门用于在Python环境中操作Redis分布式集群。该库为开发者提供了便捷的方式与Redis集群进行交互,支持各种数据结构,如字符串...
`redis-py-cluster-1.3.5.tar.gz`这个压缩包文件包含了该库的源代码和相关资源,版本号为1.3.5。 首先,让我们深入理解Redis集群。Redis集群是Redis的一个特性,它将数据分布到多个节点上,以实现水平扩展和高可用...
《Python操作Redis集群:redis-py-cluster详解》 在Python中与Redis进行交互,我们通常会使用`redis-py`库,然而,当涉及到Redis集群(Redis Cluster)时,`redis-py`的标准版本可能无法满足需求。为了解决这个问题...
redis-py代码本身非常精简(主要集中在client.py和connection.py这两个文件),该项目对redis-py中常用类,例如:StrictRedis,PubSub,Pipeline等能作详细注释,并且包含相应的使用方法 未完成部分: Redis前哨...
赠送jar包:spring-data-redis-2.6.1.jar; 赠送原API文档:spring-data-redis-2.6.1-javadoc.jar; 赠送源代码:spring-data-redis-2.6.1-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.6.1.pom; ...
赠送jar包:spring-data-redis-2.5.5.jar; 赠送原API文档:spring-data-redis-2.5.5-javadoc.jar; 赠送源代码:spring-data-redis-2.5.5-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.5.5.pom; ...
赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...
scrapy_redis-0.6.8-py2.py3-none-any.whl 使用方式 pip install xx.whl 即可
赠送jar包:spring-data-redis-2.0.9.RELEASE.jar; 赠送原API文档:spring-data-redis-2.0.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-redis-2.0.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...
另一方面,`.zip`文件是常见的文件压缩格式,`Redis-x64-5.0.14.zip`包含的是未经过Windows Installer打包的Redis文件。解压后,你可以找到包括`redis-server.exe`、`redis-cli.exe`等在内的可执行文件,以及配置...
赠送jar包:spring-data-redis-2.0.6.RELEASE.jar; 赠送原API文档:spring-data-redis-2.0.6.RELEASE-javadoc.jar; 赠送源代码:spring-data-redis-2.0.6.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...
赠送jar包:netty-codec-redis-4.1.73.Final.jar; 赠送原API文档:netty-codec-redis-4.1.73.Final-javadoc.jar; 赠送源代码:netty-codec-redis-4.1.73.Final-sources.jar; 赠送Maven依赖信息文件:netty-codec-...
redis-5.0.14/src/redis-cli --cluster create 192.168.129.98:7000 192.168.129.99:7003 192.168.129.99:7002 192.168.129.126:7005 192.168.129.126:7004 192.168.129.98:7001 --cluster-replicas
赠送jar包:spring-data-redis-2.3.9.RELEASE.jar; 赠送原API文档:spring-data-redis-2.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-redis-2.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...
Redis-x64-3.2.100.msi(5.8MB),Redis-x64-3.2.100.zip(4.98MB),redis-win-3.2.100-source.zip(2.44MB),redis-win-3.2.100-source.tar.gz(2.00MB) 由于从上述网址下载速度太慢,现共享出来方便大家使用! 安装方法...
- 使用`redis-check-aof.exe`和`redis-check-rdb.exe`定期检查数据文件的完整性,确保数据安全。 5. **注意事项**: - Windows版本的Redis可能不如Linux稳定,因此生产环境中通常建议在Linux上部署Redis。 - ...
赠送jar包:spring-data-redis-2.5.5.jar; 赠送原API文档:spring-data-redis-2.5.5-javadoc.jar; 赠送源代码:spring-data-redis-2.5.5-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.5.5.pom; ...
- `redis-check-aof`: 检查AOF日志文件的工具,确保其一致性。 - `redis-check-rdb`: 检查RDB快照文件的工具,确认数据无损。 安装Redis-x64-5.0.14.1通常涉及以下步骤: 1. 解压缩ZIP文件到指定目录。 2. 修改`...
赠送jar包:netty-codec-redis-4.1.74.Final.jar; 赠送原API文档:netty-codec-redis-4.1.74.Final-javadoc.jar; 赠送源代码:netty-codec-redis-4.1.74.Final-sources.jar; 赠送Maven依赖信息文件:netty-codec-...