Window下PHP 连接linux系统上的Redis

客户端(Window端)需要做的事

1、下载php_igbinary,php_redis两个PHP扩展

igbinary 是一个 php 的第三方扩展,相对于 php 自带的 serialize,igbinary 具有性能高,节省空间的特点,在某些高要求的场景中使用它是个不错的方案。

下载地址:

http://windows.php.net/downloads/pecl/snaps/redis

http://windows.php.net/downloads/pecl/releases/igbinary

注意选择和你自己的环境一致的版本。


我这里是PHP7.3.4的非线程安全版,所以我选了

2、解压后,将php_redis.dll、php_redis.pdb、php_igbinary.dll、php_igbinary.pdb

拷贝至php的ext目录下

3、修改配置文件php.ini,在该文件中加入:

extension=php_igbinary.dll

extension=php_redis.dll

注意:extension=php_igbinary.dll一定要放在extension=php_redis.dll的前面,否则此扩展不会生效

4、重启服务器后,使用phpinfo查看扩展是否成功安装

服务端(Linux端)需要做的事

1、下载Redis6

wget https://download.redis.io/releases/redis-6.2.6.tar.gz

2、解压

tar xzf redis-6.2.6.tar.gz

3、移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录:

mv redis-6.2.6 /usr/local/redis

4、编译并安装redis,进入redis安装目录,执行make命令编译redis:

cd /usr/local/redis

make

等待make命令执行完成即可。

5、make命令执行完,redis就编译完成了。执行下面命令安装redis,并指定安装目录

make install PREFIX=/usr/local/redis

6、进入redis安装目录,执行下面命令启动redis服务

./bin/redis-server redis.conf

此时,可以看到redis服务被成功启动:

但这种启动方式不能退出控制台,如果退出,那么redis服务也会停止。如果想要redis以后台方式运行,需要修改redis的配置文件:redis.conf。将该配置文件中的daemonize no改为daemonize yes即可:

修改完成后,重新执行启动命令启动redis,然后通过下面命令查看redis进程,可以发现redis服务已经被启动了:

ps -ef | grep redis

通过redis-cli测试redis是否可用,在redis安装目录执行下面命令:

./bin/redis-cli

Window客户端连接Linux服务端需要做的配置

设置防火墙

方案1:

开启防火墙端口    firewall-cmd --add-port=6379/tcp --permanent

查看端口占用情况    firewall-cmd --list-ports

重启防火墙    firewall-cmd --reload

方案2:

1、命令行界面输入命令“systemctl status firewalld.service”并按下回车键。

2、然后在下方可度以查看得到“active(running)”,此时说明防火墙已经被打开了。

3、在命令行中输入systemctl stop firewalld.service命令,进行关闭防火墙。

4、然后再使用命令systemctl status firewalld.service,在下方出现disavtive(dead),这权样就说明防火墙已经关闭。

5、再在命令行中输入命令“systemctl disable firewalld.service”命令,即可永久关闭防火墙。

修改Redis的配置文件

默认只能127.0.0.1连接,绑定连接

这里需要注释掉。

设置密码,找到requirepass并去掉前面的注释,注意前面不能预留空格

requirepass root

关闭protected-mode设置为no,此时外部网络可以直接访问;

把protected-mode 设置为yes 更安全,需要配置bind ip或者设置访问密码

配置文件设置访问密码:


另外,也可以直接在CentOS7本地客户端设置密码,启动本地客户端

./bin/redis-cli

config get requirepass

config set requirepass root

Window客户端软件连接测试PHPStudy自带工具连接:

Redis客户端连接测试

Windows客户端代码连接测试:

TP6连接Redis测试代码

测试结果:


代码测试结果

踩坑:刚开始死活连接不上,我怀疑是Windows上PHP的Redis扩展的版本和Linux上的Redis(服务端)版本必须一致才行,因此折腾了好久。后来发现客户端和服务端版本没必要一致。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。