logo头像
Snippet 博客主题

centos7下redis编译安装

1.下载redis代码

http://download.redis.io/releases/redis-4.0.0.tar.gz

如果上面的连接失效请使用下面的地址下载代码包

https://pan.baidu.com/s/1De-vSu3xPFRzPNgVg9bU1g

1
2
[lzq@localhost ~]$ wget http://download.redis.io/releases/redis-4.0.0.tar.gz 
[lzq@localhost ~]$ tar zxvf redis-4.0.0.tar.gz

2.编译安装redis

2.1安装redis依赖

首先到源代码包redis-4.0.0/deps/lua下执行make linux

1
[root@localhost /home/lzq/下载/redis-4.0.0/deps/lua]# make linux

在lua下执行make linux 可能会遇到下面这个错误:

luaconf.h:275:31: 致命错误:readline/readline.h:没有那个文件或目录#include<readline/readline.h>

解决方法:

执行下面的命令然后在执行make linux即可

1
[root@localhost /home/lzq/下载/redis-4.0.0/deps/lua]# yum install libtermcap-devel ncurses-devel libevent-devel readline-devel

然后回到redis-4.0.0下安装

1
2
3
[root@localhost /home/lzq/下载/redis-4.0.0/deps/lua]# cd ../
[root@localhost /home/lzq/下载/redis-4.0.0]# make MALLOC=libc
[root@localhost /home/lzq/下载/redis-4.0.0]# make PREFIX=/opt/soft/redis install #指定安装位置并安装

2.2遇到的错误

参考博客:
Redis安装遇到的问题与解决

致命错误:jemalloc/jemalloc.h:没有那个文件或目录

解决方法先执行make MALLOC=libc

1
[root@localhost /home/lzq/下载/redis-4.0.0]# make MALLOC=libc

make时可能会报如下错误:

1
2
3
4
5
6
7
cc: error: ../deps/hiredis/libhiredis.a: No such file or directory

cc: error: ../deps/lua/src/liblua.a: No such file or directory

cc: error: ../deps/jemalloc/lib/libjemalloc.a: No such file or directory

make: *** [redis-server] Error 1

分别进入redis下的deps下的hiredis、lua 运行make linux

注意:jemalloc下可能要先运行./configure,然后make linux

回到src目录运行 make

2.3 安装完成

安装完成后/opt/soft/redis/bin下会有6个执行文件

1
2
3
[lzq@localhost /opt/soft/redis/bin]$ ls
redis-benchmark redis-check-rdb redis-sentinel
redis-check-aof redis-cli redis-server

3.配置redis

3.1 注册redis服务

将redis-4.0.0/utils/下的redis_init_script拷贝到/etc/rc.d/init.d/下并命名为redis

1
[root@localhost /home/lzq/下载/redis-4.0.0/utils]# cp redis_init_script /etc/rc.d/init.d/redis
3.1.1 修改脚本文件
1
2
3
4
5
[user@myhost /]# vim /etc/rc.d/init.d/redis
在第二行,即
#!/bin/sh
的后面,加入如下一行
#chkconfig: 2345 80 90
3.1.2将redis注册为服务
1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost /etc/rc.d/init.d]# chkconfig --add redis
[root@localhost /etc/rc.d/init.d]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

要列出 systemd 服务,请执行 'systemctl list-unit-files'
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'

netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
redis 0:关 1:关 2:开 3:开 4:开 5:开 6:关
3.2 redis配置文件
3.2.1 拷贝配置文件到安装文件夹下

首先在/opt/soft/redis下创建conf文件夹,然后把源代码包redis-4.0.0下的配置文件拷贝过去

1
2
[root@localhost /home/lzq/下载/redis-4.0.0]# mkdir /opt/soft/redis/conf/
[root@localhost /home/lzq/下载/redis-4.0.0]# cp *.conf /opt/soft/redis/conf/
3.2.2 修改/etc/rc.d/init.d/redis脚本的内容

修改EXEC,CLIEXEC,CONF这三处

EXEC=/opt/soft/redis/bin/redis-server

CLIEXEC=/opt/soft/redis/bin/redis-cli

CONF=”/opt/soft/redis/conf/redis.conf”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh
#chkconfig: 2345 80 90
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/opt/soft/redis/bin/redis-server
CLIEXEC=/opt/soft/redis/bin/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/opt/soft/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

4.修改配置文件并启动

4.1 修改配置文件

参考博客:

redis配置详解

4.2 启动redis
1
[root@localhost /etc/rc.d/init.d]# service redis start
微信打赏