关于数据库:实用教程在配备持久内存的实例上部署Redis应用

35次阅读

共计 6113 个字符,预计需要花费 16 分钟才能阅读完成。

简介:装备长久内存的实例(例如 re7p、r7p、re6p)提供了超大 CPU 内存配比,Redis 利用运行在这类实例上能够大幅度降低单 GiB 内存的老本。本文以局部操作系统为例,介绍如何在这类实例上疾速部署 Redis 利用。

装备长久内存的实例(例如 re7p、r7p、re6p)提供了超大 CPU 内存配比,Redis 利用运行在这类实例上能够大幅度降低单 GiB 内存的老本。本文以局部操作系统为例,介绍如何在这类实例上疾速部署 Redis 利用。

一、背景信息

本文中疾速部署 Redis 利用的步骤实用于特定的实例规格和镜像版本,要求如下:

实例规格:

  • re7p:ecs.re7p.large、ecs.re7p.xlarge、ecs.re7p.2xlarge、ecs.re7p.16large、ecs.re7p.32xlarge
  • r7p:ecs.r7p.large、ecs.r7p.xlarge、ecs.r7p.2xlarge、ecs.r7p.16large、ecs.r7p.32xlarge
  • re6p:ecs.re6p-redis.large、ecs.re6p-redis.xlarge、ecs.re6p-redis.2xlarge、ecs.re6p-redis.4xlarge、ecs.re6p-redis.13xlarge

阐明 如需应用 ecs.re6p-redis.4xlarge,能够点击链接提交工单,取得相干帮忙。

镜像:

  • Alibaba Cloud Linux 2
  • CentOS 7.6 及更高版本
  • Ubuntu 18.10 及更高版本
  • SUSE Linux 12 SP4 及更高版本

二、在 Alibaba Cloud Linux 2 中部署 Redis 利用

Alibaba Cloud Linux 2 针对 Redis 利用进行了专项调优,相比社区版操作系统,Redis 利用整体性能晋升 20% 以上。

Alibaba Cloud Linux 2 内置 Redis 6.0.5 和 Redis 3.2.12 的 yum 源,执行 yum install 命令即可部署 Redis 6.0.5 和 Redis 3.2.12。您也能够手动部署其余版本的 Redis 利用,具体操作,请参见在 CentOS 中部署 Redis 利用和在 Ubuntu 中部署 Redis 利用。

本步骤中相干资源的配置如下:

  • 实例规格:ecs.re6p-redis.2xlarge
  • 镜像:Alibaba Cloud Linux 2.1903 LTS 64 位
  • 购买长久内存实例。具体操作,请参见应用向导创立实例。请留神以下配置:
  • 实例:单击 x86 计算架构下的内存型分类,并选中名称为 ecs.re6p-redis.2xlarge 的实例规格。
  • 镜像:抉择 Alibaba Cloud Linux 2.1903 LTS 64 位。
  • 登录实例。具体操作,请参见连贯形式概述。
  • 依据须要部署 Redis 6.0.5 或 Redis 3.2.12。
  • 部署 Redis 6.0.5:
yum install -y alinux-release-experimentals && \
yum install -y redis-6.0.5

部署 Redis 3.2.12:

yum install -y alinux-release-experimentals && \
yum install -y redis-3.2.12

启动 Redis 利用(配置默认应用的一般内存和长久内存容量)。示例命令如下:
一般内存与长久内存的举荐配比为 1:4。

export MEMKIND_DAX_KMEM_NODES=1 && \
redis-server /etc/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0

您也能够自定义一般内存与长久内存的配比,保留局部一般内存以运行其余利用,例如配比为 1:16、分配内存 34 GiB(其中一般内存 2 GiB、长久内存 32 GiB)。

export MEMKIND_DAX_KMEM_NODES=1 && \
redis-server /etc/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G

三、在 CentOS 中部署 Redis 利用

本步骤中相干资源和软件的配置如下:

  • 实例规格:ecs.re6p-redis.2xlarge
  • 镜像:CentOS 7.6
  • Redis:Redis 4.0.14
  • memkind:memkind 1.10.1-rc2

阐明 本步骤中波及从 GitHub(https://github.com/)相干地址下载资源时,请确保下载胜利后再进行后续操作。如果下载失败,请反复执行相干命令直至下载胜利。

  • 购买长久内存实例。具体操作,请参见应用向导创立实例。请留神以下配置:
  • 实例:单击 x86 计算架构下的内存型分类,并选中名称为 ecs.re6p-redis.2xlarge 的实例规格。
  • 镜像:抉择 CentOS 7.6 64 位。
  • 登录实例。具体操作,请参见连贯形式概述。

筹备编译环境。

export MEMKIND_DAX_KMEM_NODES=1 && \
yum -y install numactl-devel.x86_64 && \
yum -y groupinstall 'Development Tools'
筹备 Redis 4.0.14 源码。wget https://github.com/redis-io/redis/archive/4.0.14.tar.gz && \
wget https://github.com/redis/redis/compare/4.0.14...tieredmemdb:4.0.14-devel.diff -O redis_4.0.14_diff_tieredmemdb.patch && \
tar xzvf 4.0.14.tar.gz && \
cd redis-4.0.14 && \
git apply --ignore-whitespace ../redis_4.0.14_diff_tieredmemdb.patch

阐明 patch 用于使能长久内存,不同 Redis 版本应用的 patch 不同。更多信息,请参见下载使能长久内存的 patch。

筹备 memkind 源码。memkind 是内存管理工具,用于调配治理长久内存。
下载 memkind 源码。

wget https://github.com/memkind/memkind/archive/v1.10.1-rc2.tar.gz && \
tar xzvf v1.10.1-rc2.tar.gz && \
mv memkind-1.10.1-rc2/* ./deps/memkind

可选:调整 makefile。

阐明 您能够先运行 ldd –version 查看 glibc 版本。如果 glibc 版本等于或高于 2.17,能够跳过以下操作间接开始编译 Redis。

cd ./deps/memkind && \
wget https://github.com/memKeyDB/memKeyDB/wiki/files/0001-Use-secure_getenv-when-possible.patch && \
git apply --ignore-whitespace 0001-Use-secure_getenv-when-possible.patch && \
cd /root/redis-4.0.14

阐明 如果 patch 下载失败,再执行命令时无需包含 cd ./deps/memkind && \。

编译装置 Redis。

make clean && \
make distclean && \
make MALLOC=memkind -j 4 && \
make install

启动 Redis 利用(配置默认应用的一般内存和长久内存容量)。示例命令如下:
一般内存与长久内存的举荐配比为 1:4。

redis-server /root/redis-4.0.14/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0

您也能够自定义一般内存与长久内存的配比,保留局部一般内存以运行其余利用,例如配比为 1:16、分配内存 34 GiB(其中一般内存 2 GiB、长久内存 32 GiB)。

redis-server /root/redis-4.0.14/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G

四、在 Ubuntu 中部署 Redis 利用

本步骤中相干资源和软件的配置如下:

  • 实例规格:ecs.re6p-redis.2xlarge
  • 镜像:Ubuntu 20.04
  • Redis:Redis 6.2.5
  • memkind:memkind 1.10.1-rc2

阐明 本步骤中波及从 GitHub(https://github.com/)相干地址下载资源时,请确保下载胜利后再进行后续操作。如果下载失败,请反复执行相干命令直至下载胜利。

  • 购买长久内存实例。具体操作,请参见应用向导创立实例。请留神以下配置:
  • 实例:单击 x86 计算架构下的内存型分类,并选中名称为 ecs.re6p-redis.2xlarge 的实例规格。
  • 镜像:抉择 Ubuntu 20.04 64 位。
  • 登录实例。具体操作,请参见连贯形式概述。
  • 筹备编译环境。
export MEMKIND_DAX_KMEM_NODES=1 && \
apt update && \
apt -y install git && \
apt install -y libnuma-dev && \
apt install -y numactl

筹备 Redis 6.2.5 源码。

wget https://download.redis.io/releases/redis-6.2.5.tar.gz && \
wget https://github.com/redis/redis/compare/6.2.5...tieredmemdb:6.2.5-devel.diff -O redis_6.2.5_diff_tieredmemdb.patch && \
tar xzf redis-6.2.5.tar.gz && \
cd redis-6.2.5 && \
git apply --ignore-whitespace ../redis_6.2.5_diff_tieredmemdb.patch

阐明 patch 用于使能长久内存,不同 Redis 版本应用的 patch 不同。更多信息,请参见下载使能长久内存的 patch。

筹备 memkind 源码。memkind 是内存管理工具,用于调配治理长久内存。
下载 memkind 源码。

wget https://github.com/memkind/memkind/archive/v1.10.1-rc2.tar.gz && \
tar xzvf v1.10.1-rc2.tar.gz && \
mv memkind-1.10.1-rc2/* ./deps/memkind/

调整 makefile。

阐明 您能够先运行 ldd –version 查看 glibc 版本。如果 glibc 版本等于或高于 2.17,能够跳过以下操作间接开始编译 Redis。

cd ./deps/memkind && \
wget --no-check-certificate https://github.com/memKeyDB/memKeyDB/wiki/files/0001-Use-secure_getenv-when-possible.patch && \
git apply --ignore-whitespace 0001-Use-secure_getenv-when-possible.patch && \
cd /root/redis-6.2.5

阐明 如果 patch 下载失败,再执行命令时无需包含 cd ./deps/memkind && \。

编译装置 Redis。

make clean && \
make distclean && \
make MALLOC=memkind -j 4 && \
make install

启动 Redis 利用(配置默认应用的一般内存和长久内存容量)。示例命令如下:
一般内存与长久内存的举荐配比为 1:4。

redis-server /root/redis-6.2.5/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 4 --hashtable-on-dram yes --daemonize yes --logfile /tmp/redis_8369.log --protected-mode no --bind 0.0.0.0

您也能够自定义一般内存与长久内存的配比,保留局部一般内存以运行其余利用,例如配比为 1:16、分配内存 34 GiB(其中一般内存 2 GiB、长久内存 32 GiB)。

redis-server /root/redis-6.2.5/redis.conf --port 8369 --memory-alloc-policy ratio --dram-pmem-ratio 1 16 --maxmemory 34G

五、下载使能长久内存的 patch

替换示例命令中的下载地址以及文件名中对应的版本号即可,例如下载 Redis 6.2.5 实用的 patch 的命令如下:

wget https://github.com/redis/redis/compare/6.2.5...tieredmemdb:6.2.5-devel.diff -O redis_6.2.5_diff_tieredmemdb.patch

目前反对的 patch 的下载地址如下所示:

Redis 6.0

  • https://github.com/redis/redi…
  • https://github.com/redis/redi…
  • https://github.com/redis/redi…
  • https://github.com/redis/redi…

Redis 5.0

  • https://github.com/redis/redi…
  • https://github.com/redis/redi…
  • https://github.com/redis/redi…

Redis 4.0

  • https://github.com/redis/redi…
  • https://github.com/redis/redi…
  • https://github.com/redis/redi…
  • https://github.com/redis/redi…

Redis 3.0

  • https://github.com/redis/redi…

原文链接
本文为阿里云原创内容,未经容许不得转载。

正文完
 0