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 如果需要在后台运行,把该项改为yespidfile 配置多个pid的地址 默认在/var/run/redis.pidbind 绑定ip,设置后只接受来自该ip的请求 注释掉bind 127.0.0.1port 监听端口,默认是6379loglevel 分为4个等级:debug verbose notice warninglogfile 用于配置log文件地址databases 设置数据库个数,默认使用的数据库为0save 设置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
问题解决!