# 1.下载redis,下载地址
http://download.redis.io/releases/
# 安装 安装之前需要安装gcc依赖,因为redis是C语言开发的
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash #在当前版本启用较高的gcc
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile # scl只是临时的,执行这条命令长期生效
# 下载完压缩包解压缩,将压缩包解压缩到/usr/local下,并进入解压缩目录进行安装
tar -zxvf redis-6.2.5.tar.gz
make
make install PREFIX=/usr/local/redis
# 上述命令会在目录/usr/local/redis/bin中生成redis的可执行文件
# 在linux中设置redis的环境变量,一个偷懒的方法是将环境变量添加在文件 /etc/profile 中。之所以说偷懒,是因为一旦升级或重装了 Linux 操作系统,这个文件就会被重置。最好的方法是将自设的环境变量放到 $HOME/ 下的前缀为 .bash 的一系列文件中。
export PATH=$PATH:/usr/local/redis/bin
追加的路径正是上面生成的redis的可执行文件路径
# 使环境变量生效
source /etc/profile
# 验证环境变量
输入以下命令。如果输出了前面的设置,说明前面的环境变量设置成功
echo $PATH
输入以下命令。如果输出了相应的路径(就是前面生成的 Redis 的可执行文件的路径),说明前面的环境变量设置成功
which redis-cli
路径:/usr/local/redis/bin/redis-cli
# 将文件redis.conf复制到redis的相关目录中,这里是 /usr/local/redis/conf
mkdir -p /usr/local/redis/conf
cp redis.conf /usr/local/redis/conf
# 2.设置redis开机自启
# 修改刚刚复制后的文件 /usr/local/redis/conf/redis.conf。将该文件中的 daemonize no 改为 daemonize yes。这是为了将 Redis 作为守护进程来运行,便于开机启动。
# 将上面提到的文件 utils/redis_init_script 复制到 Linux 的启动目录 init.d 中,并重命名为 redis。然后对其添加执行权限。
cp utils/redis_init_script /etc/init.d/redis
chmod +x /etc/rc.d/init.d/redis
# 修改刚刚复制后的文件 /etc/rc.d/init.d/redis。这需要改动 3 处。之所以这样改动,是因为这些目录中涉及前面生成的 Redis 的可执行文件以及文件 redis.conf。
(注意:EXEC、CLIEXEC 的路径是没有引号的,CONF 的路径是有引号的。)
EXEC:将 EXEC 行的路径改为 /usr/local/redis/bin/redis-server。
CLIEXEC:将 CLIEXEC 行的路径改为 /usr/local/redis/bin/redis-cli。
CONF:将 CONF 行的路径改为 "/usr/local/redis/conf/redis.conf"
# 设置redis开机自启动
chkconfig redis on
# 验证开机自启动设置成功
chkconfig --list
如果输出结果含 redis,且 3、4、5 值均为开,说明设置成功。输出如下所示:
redis 0:关 1:关 2:开 3:开 4:开 5:开 6:关
# 验证redis成功启动
netstat -na | grep 6379
如果输出端口6379被使用的话,说明自启动成功
# 3.远程访问redis
关闭防火墙或者是安装iptables
修改 /usr/local/redis/conf/redis.conf 将protected-mode 的值改为no
继续修改此文件 redis.conf。将其中没有被注释掉的 bind 127.0.0.1 那行注释掉。将 bind 全部注释掉之后就会开放所有的客户端连接。
注意!
bind 是用于指定与 Redis 绑定的客户端 IP,也就是运行本 Redis 的主机 IP。如果设置了此项,其它主机就可以通过本机 IP 来远程访问本机的 Redis 服务。也就是说,bind 只是用于指定与本机 Redis 通信时,可用的 IP 目的地址,而不是 IP 源地址(即不是指定哪些外界 IP 可以访问本机的 Redis)
# 重启redis来使配置生效
service redis stop
service redis start
# 远程访问redis
ssh -v -p 6379 172.16.137.187