python连接自建redis服务器
2018-01-03 21:56
429 查看
步骤
先在linux机器上自建redis服务器1.1. 先在官网下载了最新稳定版的源码压缩包http://download.redis.io/releases/redis-4.0.6.tar.gz,
1.2 解压,make,生成bin在src/下
1.3 执行
./src/redis-server
1.4 测试是否成功
>./src/redis-cli
>ping
若回显PONG,则server已正确运行。
本机(Mac OS)python redis client环境
2.1 默认已安装python 2.7,pip,pycharm等
2.2 用pip安装redis客户端redis (2.10.6)
2.3 用pip安装hiredis (0.2.0)
2.4 打开pycharm,编写代码:
import redis r = redis.StrictRedis(host='填server机器的ip地址', port=6379, db=0) print r print r.set('foo', 'bar') print r.get('foo')
出现问题
执行上述代码出现错误:redis.exceptions.ConnectionError: Error 60 connecting to xx.xx.xx.xx:6379. Operation timed out.
解决
写这篇博文的动力就是这个错误太难找了,国内国外网站找了一圈还是没找到。能找到的常见错误是-2,111,10061,99等,这个60始终没找到。先按网上允许本机访问到远程redis server的配置设置了一遍redis.conf:
修改bind信息:bind 0.0.0.0。bind默认绑定本机ip,即只允许本机访问,修改为0.0.0.0,redis server允许通过外网连接
关闭守护进程,deamonize no。(这项可能不重要,有的地方说改成yes,反正我最后成功时是no)
关闭redis的保护模式:protected-mode no。保护模式是指是否允许其他ip的设备访问redis,开启则只允许本机进行访问。
取消redis数据库的密码:注释requirepass。
修改后重启redis server:
./src/redis-server ./redis.conf
再次执行本机python脚本,依然出现上述Error 60错误,网络完全无参考。最后在公司内网偶然看到一个资料说“需要修改port,eclipse连接不上默认端口6379”,于是怀疑我遇到的这个问题是否类似,尝试修改了一下port至8379,重启redis-server。修改python脚本中的目标port,执行,果然成功了。通过测试,应该是远程linux机器网络策略禁止了远程机器访问一些端口。最终解决办法:修改port,例如改为8379:
port 8379
相关文章推荐
- Redis in Python:远程连接Redis服务器
- 使用python连接redis
- 连接不上服务器上的Redis
- python利用paramiko连接远程服务器执行命令
- python连接MySQL、MongoDB、Redis、memcache等数据库的方法
- Python 连接 Redis
- 自建git服务器连接Pycharm系列四:pycharm项目同步到git服务器中
- [CentOS Python系列] 四.阿里云服务器CentOS连接远程MySQL数据库及pymsql
- laravel 框架 服务器部署 连接其他服务器 redis 和 mysql
- java JedisUtil 工具类连接redis服务器
- redis客户端连接到服务器
- 判断模块连接redis服务器是否出现异常
- 本地redis客户端连接远程服务器命令
- python连接redis3.x集群并做操作
- python远程连接mysql服务器
- python利用paramiko连接远程服务器执行命令
- redis 测试连通性,可以ping通虚拟机,但redis服务器连不上,连接超时
- (linux)python之setuptools、easyinstall、pip安装及连接redis
- python 交互式命令行数据库连接助手 -- mysql、sql server (mssql)、redis
- redis连接python主从