Linux上安装redis

一、安装步骤

1.安装gcc依赖

由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装
yum -y install gcc gcc-c++ make

2.官网下载redis

进入官网找到下载地址 https://redis.io/download
一般都会将redis目录放置到 /usr/local/redis目录 ,进入这个目录进行下载。
cd /usr/local/redis/
wget http://download.redis.io/releases/redis-6.2.4.tar.gz

3. 解压安装

解压到当前目录: tar -zvxf redis-6.2.4.tar.gz
cd /usr/local/redis/redis-6.2.4/src
编译命令: make
安装命令: make install   (也可以通过 make PREFIX=/usr/local/redis install  指定安装路径)
make
make PREFIX=/usr/local/redis install

4. 修改配置文件

从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录
cd /usr/local/redis
mkdir conf
cp /usr/local/redis/redis-6.2.4/redis.conf  /usr/local/redis/conf/
       daemonize 如果需要在后台运行,把该项改为yes
  pidfile 配置多个pid的地址 默认在/var/run/redis.pid
  bind 绑定ip,设置后只接受来自该ip的请求 注释掉bind 127.0.0.1
  port 监听端口,默认是6379
  loglevel 分为4个等级:debug verbose notice warning
  logfile 用于配置log文件地址
  databases 设置数据库个数,默认使用的数据库为0
  save 设置redis进行数据库镜像的频率。
  rdbcompression 在进行镜像备份时,是否进行压缩
  dbfilename 镜像备份文件的文件名
 
  Dir 数据库镜像备份的文件放置路径
  Slaveof 设置数据库为其他数据库的从数据库
 
  Masterauth 主数据库连接需要的密码验证
  Requriepass 设置 登陆时需要使用密码
  Maxclients 限制同时使用的客户数量
  Maxmemory 设置redis能够使用的最大内存
  Appendonly 开启append only模式
  Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
  vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
  vm-swap-file 设置虚拟内存的交换文件路径
  vm-max-memory 设置redis使用的最大物理内存大小
  vm-page-size 设置虚拟内存的页大小
  vm-pages 设置交换文件的总的page数量
  vm-max-threads 设置VM IO同时使用的线程数量
  Glueoutputbuf 把小的输出缓存存放在一起
  hash-max-zipmap-entries 设置hash的临界值

5.启动服务

5.1前台启动

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

5.2后台启动

cd /usr/local/redis/conf
#修改 redis.conf 文件,把 daemonize no 改为 daemonize yes
cd /usr/local/redis/bin/
./redis-server ../conf/redis.conf

6.创建redis命令软连接

ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis

二、配置开机自启动

方式一

1.设置redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行。
#vi编辑redis安装目录里面的redis.conf文件
[root@localhost /]# vi /usr/local/redis-6.2.4/redis.conf
2.复制redis配置文件(启动脚本需要用到配置文件内容,所以要复制)
#1.在/etc下新建redis文件夹
[root@localhost /]# mkdir /etc/redis
#2.把安装redis目录里面的redis.conf文件复制为/etc/redis/6379.conf ,6379.conf是取的文件名称,启动脚本里面的变量会读取这个名称,所以要是redis的端口号改了,这里也要修改
[root@localhost redis]# cp /usr/local/redis-6.2.4/redis.conf /etc/redis/6379.conf
3.复制redis启动脚本
#1.redis启动脚本一般在redis根目录的utils,如果不知道路径,可以先查看路径
[root@localhost redis]# find / -name redis_init_script
/usr/local/redis-6.2.4/utils/redis_init_script
#2.复制启动脚本到/etc/init.d/redis文件中
[root@localhost redis]# cp /usr/local/redis-6.2.4/utils/redis_init_script /etc/init.d/redis
4.修改启动脚本参数
[root@localhost redis]# vi /etc/init.d/redis
#在/etc/init.d/redis文件的头部添加下面两行注释代码,也就是在文件中#!/bin/sh的下方添加
# chkconfig: 2345 10 90
# description: Start and Stop redis
如图
同时还要修改参数,指定redis的安装路径
修改完成后按 Esc ,再按 :wq + Enter(回车) 保存并退出
5.启动redis
打开redis命令:service redis start
关闭redis命令:service redis stop
设为开机启动: chkconfig redis on
设为开机关闭:chkconfig redis off

方式二

(方法二是方法一的简单粗暴版本)
1.编写脚本
[root@localhost ~]# vi /etc/init.d/redis
复制下面代码到脚本中(注意要修改里面redis的安装路径,以/usr/redis/redis-6.2.4路径为例)(这段代码就是redis根目录 /utils/redis_init_script 启动脚本的代码)
只需要把标红加粗的三行换成自己实际安装路径即可
#!/bin/sh
# chkconfig: 2345 10 90
# description: Start and Stop redis
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.


### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO


REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli


PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/conf/redis.conf"


case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac
3.保存退出,设置权限
[root@localhost ~]# chmod 777 /etc/init.d/redis
4.启动redis
[root@localhost ~]# service redis start

方式三:

vim /etc/systemd/system/redis.service
复制粘贴以下内容:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
注意:ExecStart配置成自己的路径
执行命令开机启动
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl start redis.service
[root@localhost bin]# systemctl enable redis.service
服务操作命令
systemctl start redis.service   #启动redis服务
systemctl stop redis.service   #停止redis服务
systemctl restart redis.service   #重新启动服务
systemctl status redis.service   #查看服务当前状态
systemctl enable redis.service   #设置开机自启动
systemctl disable redis.service   #停止开机自启动

问题

/var/run/redis_6379.pid exists, process is already running or crashed解决方案
 
在安装redis的过程中,启动service redisd start时报错
/var/run/redis_6379.pid exists, process is already running or crashed
解决方案:
执行命令:
rm -rf /var/run/redis_6379.pid
然后重新执行 service redisd start
问题解决!
 
posted @ 2022-07-12 14:39  Actexpler  阅读(313)  评论(0编辑  收藏  举报