一 .下载redis源码

1. 前往redis官网下载源码, 进入下载页面 ,选择要下载的版本,本人选择的是6.2.6版本

redis源码xiazaidizhi redis源码编译安装_redis源码xiazaidizhi

2. 安装 wget 命令 :yum install wget ; 如果服务器已经安装wget则忽略这一步

3. 创建源码的下载目录: cd /usr/local; mkdir software; cd software; mkdir redis;

4. 进入下载目录并下载: cd redis; wget https://download.redis.io/releases/redis-6.2.6.tar.gz

5. 解压 : tar xf redis…tar.gz

解压完成的后的目录:

redis源码xiazaidizhi redis源码编译安装_redis_02

二 编译

1.查看一下源码目录, 有一个README.md文件(说明书)

redis源码xiazaidizhi redis源码编译安装_redis源码xiazaidizhi_03

2 .编译 : make (首先进入源码目录–README.md的目录); 如果编译失败说明没有安装编译环境;安装编译环境:yun install gcc; 说明一下redis的源码是C语言编写,所以要安装C语言的编译环境gcc; 再次使用make 命令编译会报错; 需执行 make distclean 清楚上一次编译生成的一些文件。

编译是在src 目录下生成可执行的程序

编译原理解析:

我们在源码目录可以看到一个 makefile文件;该文件是告诉你编译的过程

redis源码xiazaidizhi redis源码编译安装_redis_04


查看 makefile 文件 cat makefile

redis源码xiazaidizhi redis源码编译安装_linux_05


根据Makefile文件的描述进入src目录;会发现也有一个Makefile文件;查看Makefile文件

cat Makefile

redis源码xiazaidizhi redis源码编译安装_linux_06


编译的完成命令

1. cd redis-6.2.6
2. make 
3. yum install gcc;
4. make distclean;
5. make

三 .安装 (make install prefix=`/usr/local/software/redis/redis_install)

真实的makefile文件描述了安装原理;就是把可执行程序拷贝到指定目录; 默认的安装目录是/usr/local; 我们可以指定安装目录 通过后缀参数:PREFIX=/你自己的安装目录

redis源码xiazaidizhi redis源码编译安装_redis_07


安装命令:make install prefix=/usr/local/software/redis/redis_install

我的安装目录为: /usr/local/software/redis/redis_install

进入 redis_install 目录,有一个bin目录;查看bin目录会发现 已经把可执行程序拷贝过来了

redis源码xiazaidizhi redis源码编译安装_数据库_08

配置环境变量(告诉rendis的可执行程序存放的位置)

vi /etc/profile
export REDIS_HOME=/usr/local/software/redis/redis_install
export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile  刷新环境变量

redis源码xiazaidizhi redis源码编译安装_可执行程序_09

将redis 变为服务,跟随系统启动

我们在README.md中我们会看到安装的说明

redis源码xiazaidizhi redis源码编译安装_数据库_10


安装命令

cd  /usr/local/software/redis/redis-6.2.6/utils
./install_server.sh(可以执行一次或多次)

注意: linux 安装Redis6时 ,进行到./install_server.sh时报错:

This systems seems to use systemd.
Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!

解决办法:

vi ./install_server.sh

注释下面这段代码:

#bail if this system is managed by systemd
#_pid_1_exe="$(readlink -f /proc/1/exe)"
#if [ "${_pid_1_exe##*/}" = systemd ]
#then
#       echo "This systems seems to use systemd."
#       echo "Please take a look at the provided example service unit files in this directory, and adapt and install them. Sorry!"
#       exit 1
#fi

redis源码xiazaidizhi redis源码编译安装_redis源码xiazaidizhi_11


安装完成过后, 通过 ps -fe |grep redis 命令查看是否启动成功

redis源码xiazaidizhi redis源码编译安装_数据库_12

  1. 一个物理机可以安装多个redis实例(进程),通过port区分
  2. 可执行程序就一份在目录(/usr/local/software/redis/redis_install/bin);但是内存中未来可以有多个实例需要各自的配置文件和持久化目录
  3. service redis_6379 start/stop/status , 启动的脚本存在了/etc/init.d目录下
  4. 系统启动的时候脚本会自动帮你启动

启动脚本:/etc/init.d

redis源码xiazaidizhi redis源码编译安装_linux_13

日志文件

redis源码xiazaidizhi redis源码编译安装_可执行程序_14


配置文件:

redis源码xiazaidizhi redis源码编译安装_redis_15


持久化数据

redis源码xiazaidizhi redis源码编译安装_数据库_16


redis源码xiazaidizhi redis源码编译安装_数据库_17

redis客户端启动的命令(redis-cli)

首先我们查看一下redis 客户端启动时的参数有哪些

执行命令 :redis-cli --help 或者 redis-cli -h

redis源码xiazaidizhi redis源码编译安装_数据库_18


**常用的一些启动命令:redis-cli 默认启动的是6379的0号库

redis源码xiazaidizhi redis源码编译安装_linux_19

redis-cli -p 6380 -n 1 连接的是6380端口的实例的1号库; 一个redis实例默认有16个库,对应的索引是0到15

redis源码xiazaidizhi redis源码编译安装_linux_20


退出客户端: exit