起因

公司的一个网站,最开始部署在一个外网服务器,后面做了部分功能,只能在内部使用,于是部署在内网服务器。

同一个项目,一个外网功能,一个内网功能。一开始使用的是内存缓存,后面将网站部署到内网后,修改了基础数据,内网和外网的数据会不同步,于是使用了Redis缓存。

A网 外网 部署网站,部署Redis

B网 内网 部署网站

部署

部署Redis很简单,参考菜鸟教程的来就可以了

https://www.runoob.com/redis/redis-install.html

下载zip包,放在C盘,启动cmd窗口,进入Redis目录

cd C:\redis

再使用命令,打开Redis服务

redis-server.exe redis.windows.conf

这时候可以验证一下,连接Redis服务

redis-cli.exe -h 127.0.0.1 -p 6379

部署过程中,遇到一些问题,记录一下

问题1

外网 A网 在部署Redis报错:

It was not possible to connect to the redis server(s). SocketFailure (ReadSocketError/ConnectionReset, last-recv: 1101) on xxx.xx.xxx.xxx:6379/Interactive, Flushed/Faulted, last: ECHO, origin: ReadFromPipe, outstanding: 8, last-read: 0s ago, last-write: 0s ago, keep-alive: 60s, state: ConnectedEstablishing, mgr: 9 of 10 available, last-heartbeat: never, global: 14s ago, v: 2.1.58.34321
 

连接Redis服务器失败,原来不能写外网IP,要写127.0.0.1:6379,这样就解决了

还有一点,服务器记得开启对于的端口,Redis的默认端口为6379,公司使用的是阿里云,所以需要在阿里云的控制台,开启6379端口

问题2

内网 B网 在启用网站是也报同样的错,这样的错误太泛了,没有具体内容。

于是,将Redis部署到内网,在内网连接服务器A网的Redis

redis-cli.exe -h xxx.xx.xxx.xxx -p 6379

在设置和获取值时,报错

Error: 磁盘在使用中,或被另一个进程锁定。

Redis默认只能连接本地客户端连接,非本地客户端连接需要另外配置

设置redis.windows.conf文件

1.注释掉 bind 127.0.0.1

2.将protected-mode 设置为 no

 重启Redis,连接正常

内网,外网都可以访问Redis,网站性能大大提升...

参考

https://blog.csdn.net/qq_34869143/article/details/90293320

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐