Redis 6.x 基础安装

SunnyFan大约 3 分钟约 991 字

Redis 6.x 基础安装

1.1、下载Redis6.x的安装包

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

1.2、安装Redis6的依赖环境

Redis6 跟之前有些不同,先要升级gcc的版本,输入以下命令

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

1.3、安装Redis

1.3.1 解压

tar -zxvf redis-6.2.6.tar.gz

1.3.2 进入解压目录进行编译和安装

cd redis-6.2.6
make 编译源码
#########################
make && make install (安装到默认目录)
#########################
make PREFIX=/usr/local/redis6 install 安装到指定目录

1.4、启动Redis

1.4.1 复制redis.conf文件到安装目录

##在解压目录内执行
cp  redis.conf /usr/local/redis6

1.4.2 修改redis.conf配置文件

##进入文件夹
cd /usr/local/redis6
## 编辑redis.conf
vi redis.conf

#将里面的daemonize no 改成yes,以后台进程方式启动redis
#修改daemonize为yes,即默认以后台程序方式运行(还记得前面手动使用&号强制后台运行吗)。
daemonize yes

--------------设置外网访问-----------------------------
#bind 127.0.0.1前面加上#  注释掉这一行,127.0.0.1限制只能本机访问
#将protected-mode yes改为no
bind 0.0.0.0

#给redis设置密码,尽可能的复杂写,不要出现root 123   等简单的密码
protected-mode yes
requirepass ****** ##,密码自己设置

提示

如果上述参数不好找到,请使用vim 编辑文件,使用查找命令 如:/requirepass foobared

1.4.3 基于配置文件启动Redis

cd /usr/local/redis6/bin
redis-server ../redis.conf

1.4.4 防火墙放行Redis的端口6379

#查看防火墙目前的放行端口列表
firewall-cmd --list-ports
#添加防火墙放行端口(permanent代表永久生效)
firewall-cmd --add-port=6379/tcp --permanent
#重新加载防火墙(添加完放行端口一定要重新加载防火墙)
firewall-cmd --reload

1.4.5 测试是否支持远程

提示

自行使用相关工具

1.4.6 Redis的关闭

## 通用kill 
lsof -i:6379 #根据端口查找相关pid
kill -9 16931 #16931为对应的pid,请参照修改

1.4.7 Redis开机启动

## 在/etc目录下新建redis目录
cd /etc/
mkdir redis

# 将redis.conf文件复制到/etc/redis目录下,并重命名为6379.conf
cp /usr/local/redis6/redis.conf /etc/redis/6379.conf

#复制启动脚本 (启动脚本在当初解压的安装位置)
cp /root/redis-6.2.6/utils/redis_init_script /etc/init.d/redis
vi /etc/init.d/redis

## REDISPORT=6379
## EXEC=/usr/local/redis6/bin/redis-server   #修改EXEC为你自己的路径
## CLIEXEC=/usr/local/redis6/bin/redis-cli   #修改CLIEXEC为你自己的路径

## 执行自启命令
cd /etc/init.d/
chkconfig redis on

提示

如果运行结果提示:service redisd does not support chkconfig,

解决方法: 使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出,再次执行自启命令即可

# chkconfig: 2345 90 10

# description: Redis is a persistent key-value database

注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

1.4.8 启动Redis

# 打开redis命令:
service redis start

# 关闭redis命令:
service redis stop

运行如果出错

service redis start 运行如果出错

错误信息/var/run/redis_6379.pid exists, process is already running or crashed

请删除/var/run/redis_6379.pid文件

停止出错

service redis stop

停止服务是报错 NOAUTH Authentication required

编辑/etc/init.d/redis

vim /etc/init.d/redis

增加密码参数

 REDISPORT=6379
 EXEC=/usr/local/redis6/bin/redis-server
 REDIS_CLI=/usr/local/redis6/bin/redis-cli
    
 PIDFILE=/var/run/redis.pid
 CONF="/usr/local/redis/etc/redis.conf"
 RedisPwd=newpassword  ##增加密码
    
 case "$1" in
     start)
         if [ -f "$PIDFILE" ]; then
             echo "$PIDFILE exists, process is already running or crashed"
         else
             echo -n "Starting Redis server..."
             $EXEC $CONF
             if [ "$?"="0" ]; then
                 echo " done"
             else
                 echo " failed"
             fi
         fi
         ;;
     stop)
         if [ ! -f "$PIDFILE" ]; then
             echo "$PIDFILE does not exist, process is not running"
         else
             PID=$(cat $PIDFILE)
             echo "Stopping  Redis server..."
             $REDIS_CLI -a $RedisPwd  -p $REDISPORT shutdown ##增加密码参数
             if [ "$?"="0" ]; then
                 echo " done"
             else
                 echo " failed"
             fi
         fi
         ;;
     restart)
         ${0} stop
         ${0} start
         ;;
     kill)
         echo "force kill redis server..."
         killall redis-server
         if [ "$?"="0" ]; then
             echo " done"
         else
             echo " failed"
         fi
         ;;
     status)
         if [ -f "$PIDFILE" ]; then
             echo "Redis server is running."
         else
             echo "Redis server is stopped."
         fi
         ;;
   *)
     echo "Usage: /etc/init.d/redis {start|stop|restart|status|kill}" >&2
         exit 1
 esac