前沿:
我将把压缩包都放在/home/soft/这个路径下,soft是自己新建的文件夹(可以放置在任一文件,没有要求,根据自己的要求建立),把压缩包都解压到/usr/local/这个指定目录
使用的远程控制软件:MobaXterm
使用的Linux系统:CentOS
步骤:
一、下载安装包,两种方式
- 在windows中下载redis-6.0.5.tar.gz安装包
- 在linux中/home/soft/中执行此命令
wget http://download.redis.io/releases/redis-6.0.5.tar.gz
二、如果在Windows环境下载的压缩包,需要将此压缩包放置到linux系统中/home/soft/目录下
三、解压redis到指定目录下/usr/local
四、cd到/usr/local/redis-6.0.5/,执行make,进行编译
[root@localhost soft]# cd /usr/local/redis-4.0.2/
[root@localhost redis-4.0.2]# make
这一步是出现错误最多的,种类也很多,由我一一道来:
第一种:gcc:Command not found
解决方案:
yum -y install gcc
CentOS默认没有安装gcc,这会导致我们无法make成功。 因为Redis是C实现的,所以需要gcc来进行编译
第二种:如果执行了第一种解决方案,还没有解决,报以下错误
make[1]: *** [server.o] 错误 1
make[1]: 离开目录“/usr/redis-6.0.1/src”
make: *** [all] 错误 2
server.c:2402:11: 错误:‘struct redisServer’没有名为‘assert_file’的成员
server.assert_file = "<no file>";
^
server.c:2403:11: 错误:‘struct redisServer’没有名为‘assert_line’的成员
server.assert_line = 0;
^
server.c:2404:11: 错误:‘struct redisServer’没有名为‘bug_report_start’的成员
server.bug_report_start = 0;
^
server.c:2405:11: 错误:‘struct redisServer’没有名为‘watchdog_period’的成员
server.watchdog_period = 0;
解决方案:
[root@localhost redis-6.0.5]# gcc -v # 查看gcc版本
[root@localhost redis-6.0.5]# yum -y install centos-release-scl # 升级到9.1版本
[root@localhost redis-6.0.5]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
[root@localhost redis-6.0.5]# scl enable devtoolset-9 bash
以上为临时启用,如果要长期使用gcc 9.1的话:
[root@localhost redis-6.0.5]# echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
第三种:出现没有哪个文件或目录错误
解决方案:
[root@localhost redis-6.0.5]# make distclean
再此执行make,出现这个说明成功了
Hint: To run 'make' is a good idea ;)
五、编译结束后进行安装
[root@localhost redis-6.0.5]# cd src/
[root@localhost redis-6.0.5]# make install PREFIX=/usr/local/redis
出现以下照片,说明成功
六、备份redis.conf文件和修改此文件
配置redis为后台启动:将daemonize no 改成daemonize yes
配置远程访问:将protected-mode yes 改为 no
1、关闭protected-mode模式,此时外部网络可以直接访问,需要将bind注释和设置密码
2、开启protected-mode保护模式,需配置bind ip或者设置访问密码
设置密码:# requirepass foobared 修改成 : requirepass 123456
七、启动Redis服务端,指定启动Redis的配置文件
[root@localhost src]$ ./redis-server /usr/local/redis/etc/redis.conf
启动redis客户端,测试
[root@localhost src]$ ./redis-cli
127.0.0.1:6379>set name notail
ok
127.0.0.1:6379>get name
"notail"
八、关闭防火墙,只有关闭了防火墙,才可以进行远程访问
#查看防火状态
systemctl status firewalld
#暂时关闭防火墙
systemctl stop firewalld.service
#开启防火墙:
systemctl start firewalld.service
#关闭开机自启动:
systemctl disable firewalld.service
#开启开机启动:
systemctl enable firewalld.service
九、测试连接
十、退出Redis客户端或关闭Redis服务
127.0.0.1:6379> shutdown save
或
首先查询到redis的pid后,kill掉,然后重启
[root@localhost src]# ps -ef|grep redis
root 20940 1 0 12:12 ? 00:00:18 ./redis-server *:6379
[root@localhost src]# kill 20940
以上就是全部的步骤,其他的操作就需要进一步的实践了,如有遗漏的地方,请指出,共同进步!