未指定IP地址报错
😑
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “D:\wjpythonwj\redis_1.py”, line 21, in
result = rs.set(‘name’,‘itcast’)
File “D:\python3\lib\site-packages\redis\commands\core.py”, line 2127, in set
return self.execute_command(“SET”, *pieces, **options)
File “D:\python3\lib\site-packages\redis\client.py”, line 1215, in execute_command
conn = self.connection or pool.get_connection(command_name, **options)
File “D:\python3\lib\site-packages\redis\connection.py”, line 1386, in get_connection
connection.connect()
File “D:\python3\lib\site-packages\redis\connection.py”, line 620, in connect
raise ConnectionError(self._error_message(e)) redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379. 由于目标计算机积极拒绝,无法连接。.

👽学会看报错信息非常重要,我恰恰忽略了最后一句redis.exceptions.ConnectionError: Error 10061 connecting to localhost:6379. 由于目标计算机积极拒绝,无法连接
报错信息显示: 拒绝连接localhost:6379
此时应该使用ip add 查看Linux的IP地址和端口号(本地虚拟机VMware是虚拟出来的一层设备,与127.0.0.1有区别!!!)
[root@localhost /]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:ad:7b:f0 brd ff:ff:ff:ff:ff:ff
inet 192.168.153.133/24 brd 192.168.153.255 scope global noprefixroute dynamic ens33
valid_lft 1699sec preferred_lft 1699sec
inet6 fe80::2b7f:aef3:82b:78e3/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::cf5a:4e51:97df:a48/64 scope link noprefixroute
valid_lft forever preferred_lft forever
画重点:IP地址是192.168.153.133
👏所以python(pycharm)连接Linux中的redis时需要指定IP地址为192.168.153.133
# encoding=utf-8
import redis
if __name__=="__main__":
ip='192.168.153.133'
#创建redis的连接实例
#我们在连接/花费外界资源的时候一定要注意使用try
try:
rs=redis.Redis(host=ip,port=6379) #如果连接的是云服务器也可以不指定IP和端口
except Exception as e:
print(e)
#操作string
#添加set key value
result = rs.set('name','itcast')
print(result)
连接线程池代码
import redis
ip = '192.168.153.133'
conn_pool = redis.ConnectionPool(host=ip, port=6379)
r = redis.Redis(connection_pool=conn_pool)
r.set('name','zjh')
print(r.get('name')) #b'zjh'
未修改redis.conf报错
vim /etc/redis/redis.conf #找到自己目录下的redis.conf
vim查找指定内容:/ 要寻找的内容
1、接触本地IP的绑定 bind

2、关闭保护模式protected-mode (把默认的yes改为no)

防火墙问题,未开放6379端口号
1、设置开启某个端口(不拦截redis的6379端口)
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
2、重启防火墙
firewall-cmd --reload
防火墙其他常用命令
firewall-cmd --state #查看防火墙状态,是否是running
firewall-cmd --reload #重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones #列出支持的zone
firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp #临时开放ftp服务
firewall-cmd --add-service=ftp --permanent #永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent #永久添加80端口
iptables -L -n #查看规则,这个命令是和iptables的相同的
man firewall-cmd #查看帮助
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
更多命令,使用 firewall-cmd --help 查看帮助文件
重启redis
[root@localhost redis]# redis-server redis.conf
[root@localhost ~]# redis-server /etc/redis/redis.conf #在其他目录指定启动redis.conf
[root@localhost redis]# redis-cli #连接redis
ctrl+c退出!!
Python连Redis:解决本地连接错误与配置详解

4427

被折叠的 条评论
为什么被折叠?



