redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。 简单说,官方推荐使用StrictRedis方法。
不推荐Redis类,原因是他和咱们在redis-cli操作有些不一样,主要不一样是下面这三个方面。
·LREM:参数 ‘num’ 和 ‘value’ 的顺序交换了一下,cli是 lrem queueName 0 ‘string’ 。 这里的0时所有的意思。 但是Redis这个类,把控制和string调换了。
·ZADD:实现时 score 和 value 的顺序不小心弄反了,后来有人用了,就这样了
·SETEX: time 和 value 的顺序反了
.Pool: 连接池
最近爬虫很是凶猛,标注下文章的原文地址: blog.xiaorui.cc
再就是连接池,很多人用Redis的原因是,以前的一些个博客的关于python redis的操作,基本用的时Redis的连接池方式。 其实StrictRedis也是支持的。
Redis的连接池的方法:
|
pool=redis.ConnectionPool(host='localhost',port=6379,db=0)
r=redis.Redis(connection_pool=pool)
|
StrictRedis的连接池的实现方式:
|
In[4]:pool=redis.ConnectionPool(host='127.0.0.1',port=6379)
In[5]:r=redis.StrictRedis(connection_pool=pool)
|
看下官方的创建redis的时候,都可以添加什么参数。
|
classredis.StrictRedis(host='localhost',port=6379,db=0,password=None,socket_timeout=None,connection_pool=None,charset='utf-8',errors='strict',decode_responses=False,unix_socket_path=None)
Implementation of the Redis protocol.
This abstract classprovidesaPython interface to allRedis commandsandan implementation of the Redis protocol.
Connection andPipeline derive fromthis,implementing how the commandsare sent andreceived to the Redis server
|
另外的再说下redis的对于有些编码入库的问题,redis的连接附加的参数里面,默认编码是utf-8,但是如果你非要用GBK那就需要指明你的chardet和decode_responses为True 。
|
class redis.StrictRedis(host='localhost',port=6379,db=0,password=None,socket_timeout=None,connection_pool=None, charset='GBK ',errors='strict', decode_responses=True)
|
嗯,剩下的就没什么了 。以后要好好的看文档哈。
更新, 今天又遇到这问题了…
1
2
3
4
5
6
7
8
9
10
11
12
|
#xiaorui.cc
redis.zadd('timer_scheduler',json.dumps(urlbody),score)
File"/usr/local/lib/python2.7/site-packages/redis/client.py",line1574,inzadd
returnself.execute_command('ZADD',name,*pieces)
File"/usr/local/lib/python2.7/site-packages/redis/client.py",line565,inexecute_command
returnself.parse_response(connection,command_name,**options)
File"/usr/local/lib/python2.7/site-packages/redis/client.py",line577,inparse_response
response=connection.read_response()
File"/usr/local/lib/python2.7/site-packages/redis/connection.py",line574,inread_response
raiseresponse
ResponseError:value isnotavalid float
|
很明显,顺序不对… ResponseError: value is not a valid float ,字符串跟score反了…
转自:http://xiaorui.cc/2014/11/10/%E4%BD%BF%E7%94%A8redis-py%E7%9A%84%E4%B8%A4%E4%B8%AA%E7%B1%BBredis%E5%92%8Cstrictredis%E6%97%B6%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91/
分享到:
相关推荐
2. **命令一致性**:尽管Redis集群可能涉及多个节点,但`redis-py-cluster`确保了跨节点操作的原子性和一致性。 3. **数据持久化**:Redis-Py-Cluster支持Redis的数据持久化选项,如RDB快照和AOF日志,以保证数据在...
在使用`redis-py-cluster`时,首先需要创建一个`Cluster`实例,提供集群的种子节点(即集群中的任意节点地址)。然后,可以像使用单个Redis实例一样使用这个集群对象: ```python from rediscluster import Redis...
在实际开发中,可以通过阅读`redis-py-master`源代码了解其实现细节,更好地理解和优化使用Redis的方式,提升应用性能。此外,持续关注Redis的更新和`redis-py`的版本升级,以利用最新的特性和改进。
在Python中与Redis进行交互,我们通常会使用`redis-py`库,然而,当涉及到Redis集群(Redis Cluster)时,`redis-py`的标准版本可能无法满足需求。为了解决这个问题,`redis-py-cluster`应运而生,它是一个专门为...
scrapy_redis-0.6.8-py2.py3-none-any.whl 使用方式 pip install xx.whl 即可
redis-stack-server-7.2.0-v9.arm64.snap redis-stack-server-7.2.0-v9.bionic.arm64.tar.gz redis-stack-server-7.2.0-v9.bionic.x86_64.tar.gz redis-stack-server-7.2.0-v9.bullseye.x86_64.tar.gz redis-stack-...
2. **服务化**:为了使Redis在系统启动时自动运行,可以将`redis-server.exe`配置为Windows服务。这可以通过命令行工具`sc create`或使用`.msi`安装包实现。 3. **数据持久化**:Redis支持多种持久化方式,包括RDB...
redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-5.0.5.redis-...
在本文中,我们将深入探讨`redis-py-cluster`的1.3.4版本,并讨论其关键特性和使用方法。 **1. Redis Cluster** Redis Cluster是Redis提供的分布式解决方案,允许将数据分布在多个节点上,提供高可用性和水平扩展...
redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧...
"Redis++使用说明,windows下编译Redis-Plus-Plus" 在这篇文章中,我们将详细介绍如何在Windows平台下编译Redis++,包括编译hiredis.lib和Win32_Interop.lib静态库文件的过程,然后安装Cmake并编译Redis++,最后...
这两个文件分别对应Redis服务本身和通过Ruby来创建Redis集群的工具。 首先,`redis-3.0.0.tar`是一个源代码压缩包,包含了Redis 3.0.0版本的所有源代码。要安装和运行Redis,你需要先解压这个文件,然后在CentOS...
redis 是一个 Key-Value 数据库,Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型。python连接redis需要的包,3.4.1版本
在使用 `redis-full-check` 之前,确保你已经安装了 Redis 客户端库(如 `redis-cli`)和工具本身。运行该工具时,通常需要提供 Redis 实例的 IP 地址、端口和认证信息(如果配置了密码)。例如,基本用法可能如下:...
- 使用`redis-check-aof.exe`和`redis-check-rdb.exe`定期检查数据文件的完整性,确保数据安全。 5. **注意事项**: - Windows版本的Redis可能不如Linux稳定,因此生产环境中通常建议在Linux上部署Redis。 - ...
Redis,全称Remote Dictionary Server,是一款高性能的键值对存储系统,被广泛应用于缓存、数据库和消息中间件等场景。...正确理解和使用Redis-x64-5.0.14.1版本,能够显著提升应用的性能和可扩展性。
redis-py-cluster 该客户端提供了Redis 3.0中添加的Redis集群客户端... redis-py-cluster 2.1.x将是支持Python 2.7的最后一个主要版本。 2.1.x系列将继续获得支持Python 2的错误修复和安全补丁,直到2020年8月1日。red
在压缩包中的两个jar文件,`tomcat8-redis-session-manager-2.0.0.jar`和`tomcat7-redis-session-manager-2.0.0.jar`,分别对应Tomcat8和Tomcat7的实现。这两个jar包包含了实现session与Redis交互的所有必要组件,如...
iredis是一个高效的Python Redis客户端,它是redis-py的升级版,旨在提供更好的性能和更多的功能。iredis利用了Python的asyncio库,支持异步操作,这使得它在处理大量并发连接和数据操作时表现出色。"iredis-0.9.1-...
redis-check-dump 快照文件检测工具,效果类上 redis-cli 客户端 redis-server 服务端 10: 启动与连接 启动redis并指定配置文件 cd /usr/local/redis ./bin/redis-server ./redis.conf #设置随机启动 vim /etc/...