Redis
key-value存储系统
开发语言:C/C++

软件介绍

Redis是一个使用ANSI C语言编写的开源key-value内存数据库系统,Redis支持字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等数据结构类型,并提供多种语言的API

支持的操作系统

经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行Redis的全部功能:

l   CentOS7.5

l   EulerOS2.8

可支持版本和获取方式

l   ARM运行Redis,建议最低版本是redis-4.0.9

编译和测试方式

本文选用华为鲲鹏云服务ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920,详细配置如下:

类别

子项

版本

云主机配置

ECS ARM实例类型

kc1.xlarge.4

ECS配置

4U16GB

EVS

IO(100GB)

OS

Euler OS

2.8

Kernel

4.19.36

1.      获取源代码

本文档所测试版本为:Redis-4.0.90

软件获取路径为:http://download.redis.io/releases/

Redis官网:https://redis.io/

2.      编译源代码

本文以Redis-4.0.9为例,下载redis-4.0.9源码,并编译安装。

1)     执行如下命令,获取Redis源码。

wget http://download.redis.io/releases/redis-4.0.9.tar.gz

2)     执行如下命令,解压包。

tar -zxvf redis-4.0.9.tar.gz

3)     执行如下命令,进入deps目录。

cd redis-4.0.9/deps

4)     执行如下命令,编译Redis依赖库。

make -j4 hiredis lua jemalloc linenoise

5)     依次执行如下命令,编译Redis

cd ..

make -j4

make install

3.      配置编译好的软件

1)     执行如下命令,建立redis配置文件。

cp redis.conf /usr/local/etc/

2)     执行如下命令,配置redis为后台启动。

vim /usr/local/etc/redis.conf

daemonize no 改成daemonize yes


3)     设置Redis开机启动。

a.         执行如下命令,将Redis启动脚本放置/etc/init.d/目录下,并命名为redis

cp redis-4.0.9/utils/redis_init_script /etc/init.d/redis

b.         执行如下命令,修改脚本内容。

vim /etc/init.d/redis

修改内容如下图:


c.         设置服务开启启动。

chkconfig redis on

4.      测试已完成编译的软件

1)     执行如下命令,查看Redis版本。

redis-server -v

系统会显示如下类似信息,表示Redis的版本是4.0.9

[root@ecs-1-0002 redis-4.0.9]# redis-server -v
Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=1e80e86f2ae3f0d8

2)     执行如下命令,查看RedisCLI版本。

redis-cli -v

系统会显示如下类似信息,表示RedisCLI版本是4.0.9

redis-cli 4.0.9

3)     执行如下命令,启动redis-server

service redis start

系统会显示如下类似信息,表示Redis启动完成。

Starting Redis server...
20525:C 19 Jun 20:43:25.941 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
20525:C 19 Jun 20:43:25.941 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=20525, just started
20525:C 19 Jun 20:43:25.941 # Configuration loaded

4)     执行如下命令,使用redis-cli连接server,并执行k-v请求。

[root@ecs-1-0002 redis-4.0.9]# redis-cli
127.0.0.1:6379> set huawei arm
OK
127.0.0.1:6379> get huawei
"arm"
127.0.0.1:6379> del huawei
(integer) 1
127.0.0.1:6379> get huawei
(nil)

已知问题汇总

问题现象

编译Redis时出现如下报错:


问题根因

出现此错误是因为缺少hiredisluajemalloclinenoise库。

问题解决

1)     执行如下命令,进入Redis目录。

cd redis-4.0.9/deps

2)     执行如下命令,编译Redis依赖库。

make -j4 hiredis lua jemalloc linenoise

软件下载

源码下载立即下载