---
title: 编译embedded-redis源码
description: "- 鲲鹏镜像站中提供的二进制包是基于开源代码直接编译打包而成的，不含漏洞及BUG修复。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengwebs/ecosystemEnable/DependencyLibrary/kunpengembeddedredis6_02_0009.html
sourcePath: /source/zh/kunpengwebs/ecosystemEnable/DependencyLibrary/kunpengembeddedredis6_02_0009.html
indexId: 37b110f8654f6b6be72eccf49d6c609680fda453c1886699aa36f63e48cf609991
---
# 编译embedded-redis源码

- 鲲鹏镜像站中提供的二进制包是基于开源代码直接编译打包而成的，不含漏洞及BUG修复。
- 使用开源软件时需遵守开源软件的许可协议。


1. 获取源码。

  a. 在本地浏览器下载源码。

    -       embedded-redis-0.6(https://github.com/kstyrc/embedded-redis/archive/embedded-redis-0.6.zip)

    -       embedded-redis-0.7.2(https://github.com/ozimov/embedded-redis/archive/0.7.2.tar.gz)

  b. 将源码包上传到服务器“/home”目录下。
    若服务器可以访问网络，则通过wget命令直接下载源码。

2. 解压源码包后进入源码目录。

  - embedded-redis-0.6：
    1 2 unzip embedded-redis-0.6.zip cd embedded-redis-embedded-redis-0.6/


  - embedded-redis-0.7.2：

```
mv 0.7.2.tar.gz embedded-redis-0.7.2.tar.gz
tar -zxvf embedded-redis-0.7.2.tar.gz
cd embedded-redis-0.7.2/
```


3. 修改源码以适配AArch64架构。

  - 增加架构类型

    a. 打开Architecture.java文件。
      1 vim src/main/java/redis/embedded/util/Architecture.java

    b. 按“i”进入编辑模式，在第5行末尾添加“,”逗号。
    c. 第6行添加代码后，保存并退出文件。

```
aarch64
```


    d. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

  - 增加OS定义

    a. 打开OsArchitecture.java文件。
      1 vim src/main/java/redis/embedded/util/OsArchitecture.java

    b. 按“i”进入编辑模式，第12行添加如下代码。

```
public static final OsArchitecture UNIX_aarch64 = new OsArchitecture(OS.UNIX, Architecture.aarch64);
```


    c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

  - 添加架构定义

    a. 打开RedisExecProvider.java文件。
      1 vim src/main/java/redis/embedded/RedisExecProvider.java

    b. 按“i”进入编辑模式，第32行添加如下代码。

```
executables.put(OsArchitecture.UNIX_aarch64, "redis-server-2.8.19-aarch64");
```


    c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

  - 添加架构判断

    a. 打开OSDetector.java文件。
      1 vim src/main/java/redis/embedded/util/OSDetector.java

    b. 按“i”进入编辑模式，修改第57行。

```
if (line.contains("x86_64"))
```


    c. 第60行-第62行添加如下代码。

```
else if (line.contains("aarch64")) {
return Architecture.aarch64;
}
```


    d. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
4. 从“/home/redis-2.8.19/src/redis-server”目录复制编译redis-server-2.8.19源码编译好的可执行文件到“src/main/resources/redis-server-2.8.19-aarch64”目录。
  1 2 3 ls src/main/resources/ \cp /home/redis-2.8.19/src/redis-server src/main/resources/redis-server-2.8.19-aarch64 ls src/main/resources/

5. 配置Cntlm。
  若机器需配置代理才可访问外网，则需要配置Cntlm，参考配置Cntlm。

6. 编译安装。
  1 mvn install

  若编译完成后结果显示“BUILD SUCCESS”，则表示编译成功。

  若执行编译报错“Can't start redis server”，请参考编译embedded-redis时提示Can't start redis server的解决方法解决。

7. 查看生成的JAR包。
  1 ls target/

  华为鲲鹏镜像站有编译好的JAR包供读者使用： embedded-redis-0.6.jar(https://mirrors.huaweicloud.com/kunpeng/maven/com/github/kstyrc/embedded-redis/0.6/embedded-redis-0.6.jar) embedded-redis-0.7.2.jar(https://mirrors.huaweicloud.com/kunpeng/maven/it/ozimov/embedded-redis/0.7.2/embedded-redis-0.7.2.jar)
