概要信息
本文主要介绍在CentOS6.x下编译Redis的源码,并使用后台进程启动一个Redis实例
下载、解压并编译Redis的源代码
下载Redis源代码
打开Redis的官网,进入Download模块:https://redis.io/download
我们会看到:
上文说到,我们可以通过:
来获取最新的稳定版本的Redis源码,那么我们就使用这个最新的稳定版本
在下载之前,我们需要选定一个目录要作为我们接下来的工作目录,在我的电脑上,我的工作路径是 /opt/redis,当然你可以自己创建和选择喜欢的路径。
使用wget 命令下载:
解压Redis源代码
[root@arvin1 redis]# tar -zxvf redis-stable.tar.gz
[root@arvin1 redis]# ls
redis-stable redis-stable.tar.gz
[root@arvin1 redis]# cd redis-stable
[root@arvin1 redis-stable]# ls
00-RELEASENOTES BUGS CONTRIBUTING COPYING deps INSTALL Makefile MANIFESTO README.md redis.conf runtest runtest-cluster runtest-sentinel sentinel.conf src tests utils
编译Redis源码
使用 make 命令实现redis源码的编译:
[root@arvin1 redis-stable]# make
从结果上看,发现没有gcc和cc命令,怎么办?当然是先安装这两个命令:
[root@arvin1 redis-stable]# yum install -y gcc-c++
安装完成后,继续执行 make 命令,可能会得到下面的结果:
这回说的是 jemalloc的版本不对,有两种可能性,有可能是上一次make命令导致有些残留的文件没删除,我们使用make distclean 清理一下上次的make残留文件:
[root@arvin1 redis-stable]# make distclean
再次执行 make 命令,如果还是出现下面的提示:
我们再使用另一个参数来make:
[root@arvin1 redis-stable]# make MALLOC=libc
一般情况下,应该没问题了,接着就等值编译完成了,编译完成最后会提示:
最后编译完成了,提示用make test检测下哦,既然这么推荐,那就运行一下make test吧
[root@arvin1 redis-stable]# make test
运行后的结果如下,发现又有问题:
说是缺少 tcl 这个软件包,好吧在使用yum安装一下:
[root@arvin1 redis-stable]# yum install -y tcl
安装完成后继续使用 make test, 这个过程比较长,最后如果成功的话,会出现:
到此,Redis就算是编译完成了,我来看看编译后的文件,编译后的文件都放在了 /opt/redis/redis-stable/src 目录下,主要有redis-cli,redis-server,redis-sentinel 这三个是比较常用的命令。
启动单节点Redis实例
将命令拷贝到PATH路径下
目的在于能够在任意目录下使用redis的相关命令,我们先来看看系统当前的PATH是什么:
[root@arvin1 src]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@arvin1 src]#
我们可以放在任意一个目录下,一般放在 /usr/local/bin 目录下
[root@arvin1 src]# cp redis-cli /usr/local/bin
[root@arvin1 src]# cp redis-server /usr/local/bin
[root@arvin1 src]# cp redis-sentinel /usr/local/bin
[root@arvin1 src]# ll /usr/local/bin | grep redis
-rwxr-xr-x. 1 root root 403989 Apr 20 00:23 redis-cli
-rwxr-xr-x. 1 root root 2522088 Apr 20 00:23 redis-sentinel
-rwxr-xr-x. 1 root root 2522088 Apr 20 00:23 redis-server
上面已经将命令拷贝到系统的PATH路径下了,因此任意目录下可以使用上面三个命令。
配置单节点redis.conf
在前面我们已经准备好了环境,现在我们就来启动一个Redis实例吧。我们之前的编译路径是:/opt/redis/redis-stable,打开该目录,我们发现该目录中有一个redis.conf文件。为了便于做实验,我们在另一个目录中进行:
[root@arvin1 redis]# mkdir single
将样板文件 redis.conf 复制一个到 /opt/redis/single 目录下:
[root@arvin1 single]# cp /opt/redis/redis-stable/redis.conf /opt/redis/single/
编辑这个文件,设置以下几个配置项:
将bind 127.0.0.1 这个配置项注释掉(不用管也可以,本机测试)
设置监听端口: port 6379
设置后台进程运行: daemonize yes
可以指定日志输出文件,如果不指定的话默认是/dev/null,比如设置为:logfile “/opt/redis/single/log.log”
启动Redis实例
在上一小节中,我们已经配置好了 /opt/redis/single/redis.conf 接下来只需要指定这个配置文件启动Redis实例就可以了,使用如下命令进行启动:
[root@arvin1 single]# redis-server /opt/redis/single/redis.conf
启动完成后,可检查下Redis的运行情况,可以打开日志“/opt/redis/single/log.log”,如果要查看进程信息的话,使用以下命令:
[root@arvin1 single]# ps -ef | grep redis
root 4130 1 0 00:35 ? 00:00:00 redis-server *:6379
root 4137 4110 0 00:36 pts/1 00:00:00 grep redis[root@arvin1 single]# netstat -an | grep 6379
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 :::6379 :::* LISTEN
使用redis-cli客户端
启动了Redis实例后,我们可以使用redis-cli自带的客户端来进行一些验证:
[root@arvin1 single]# redis-cli -p 6379
127.0.0.1:6379> info cpu
#
cpu
used_cpu_sys:0.17
used_cpu_user:0.09
used_cpu_sys_children:0.00
used_cpu_user_children:0.00
关闭Redis实例
关闭有几种方式,第一种是直接将该实力的PID执行kill操作;第二种是直接使用redis-cli,进入后使用shutdown命令进行关闭,第三种,还是使用redis-cli进行关闭,直接使用命令:
[root@arvin1 single]# redis-cli -p 6379 shutdown