如何基于阿里云持久内存实例搭建高性价比Redis应用?

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 本文将通过分享基于阿里云持久内存实例产品上部署 Redis 的负载实践案例,降低自建 Redis 应用的成本,帮助用户更好地降本增效。

作者:阿里云弹性计算产品专家踏波

本文将通过分享基于阿里云持久内存实例产品上部署 Redis 的负载实践案例,降低自建 Redis 应用的成本,帮助用户更好地降本增效。

什么是 Redis

Redis 是由意大利人 Antirez 开发的键值对(key-value) 数据库。Redis 是“Remote Dictionary Service” 的首字母缩写,它是一个基于内存的,可选持久化的键值对存储系统。

Redis 作为一个高性能、低延时的缓存数据库风靡全球,1ms 的响应延时在数据库圈内一骑绝尘,其根本原因是 Redis 将所有的数据都存放于内存,而内存拥有着磁盘难以比拟的带宽和延时。Redis 被广泛应用在游戏、视频、新闻、导航、金融等各个领域。

Redis 数据库主要有以下几个特点:

  • 内存型数据库
  • 工作模式为单线程
  • 支持多种复杂数据类型
  • 支持数据持久化
  • 支持主从结构

随着互联网及云端数据爆炸式的增加,传统基于 DRAM (普通易失性内存)的部署方式,高昂的成本以及受限的容量逐渐成为 Redis 应用的瓶颈。容量更大,价格更低的新型内存(持久内存介质)逐步走上数据中心领域应用的舞台。

搭建 Redis 对于云服务器的要求

Redis 数据库对内存容量的要求比较高,数据库的瓶颈往往出现在内存容量上,即内存耗光了,而 CPU 的利用率只有 10-20% 不到。所以,搭建 Redis 对于云服务器的内存要求较高,充足的内存容量可以有效地降本增效。

阿里云新推出的持久内存实例产品 Re6p,采用 Intel ®傲腾 TM 持久内存,提供了高达 1:20 的 CPU 内存容量配比(即 8 核新配备了 160G 内存),为 Redis 应用提供专用实例规格 ecs.re6p-redis.large,部署方便简单。

基于 Re6p 五分钟搭建 Redis 应用

image.png

阿里云持久内存型实例 Redis 应用解决方案解构图

Redis 应用直接部署在 Re6p-redis 系列实例上,无需对持久内存进行其他任何初始化操作“开机即用”。

基于开源 Redis 版本部署,注入了冷热数据分层机制(通过专用 patch 包实现—memKeyDB),patch 包完全开源,由 Intel 团队维护。

参考源码:
https://github.com/memKeyDB/memKeyDB

下面将分享某互联网客户基于 Re6p-redis 系列实例的实战经验,如何基于 open source Redis 4.0.14 及对应的 patch,五分钟搭建出基于持久内存的超高性价比 Redis 应用集群。

第一步

启动阿里云 ECS,购买 ecs.re6p-redis.2xlarge 实例规格,选择 ALi Linux2 操作系统,云盘选择 500G PL1 ESSD,并指定系统盘默认为 40GB。

第二步:准备编译环境

设置环境变量:

export MEMKIND_DAX_KMEM_NODES=1

准备编译环境:

yum -y groupinstall 'Development Tools';yum -y install numactl-devel.x86_64

第三步:安装Redis4.0.14

下载 Redis 安装包:

wget https://github.com/redis-io/redis/archive/4.0.14.tar.gz;tar xzvf 4.0.14.tar.gz

安装 patch 包:

wget https://github.com/redis/redis/compare/4.0.14...memKeyDB:4.0.14-devel.diff -O redis_4.0.14_eca56e845aa19d2e79e7c70207e860f8385541f9.patch;cd redis-4.0.14;git apply --ignore-whitespace ../redis_4.0.14_eca56e845aa19d2e79e7c70207e860f8385541f9.patch

安装 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/;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

开始编译安装 Redis4.0.14:

cd /root/redis-4.0.14;make clean;make distclean;make MALLOC=memkind -j 4;make install

第四步:配置网卡多队列(可以发挥出 Redis 的最大性能)

准备脚本:
wget https://ecs-image-tools.oss-cn-hangzhou.aliyuncs.com/ecs_mq/ecs_mq_latest.tgz;tar -xzf ecs_mq_latest.tgz;cd ecs_mq/

运行脚本:

bash install.sh <系统名称> <系统主版本号>. (如:bash install.sh centos 7)

启动服务:systemctl start ecs_mq

安装完成,启动 Redis 服务:

启动:

cd /root/redis-4.0.14;redis-server redis.conf --port 6379 --memory-alloc-policy ratio --dram-pmem-ratio 1 8 --maxmemory 36G --hashtable-on-dram yes --daemonize yes --protected-mode no --bind 0.0.0.0

全部完成,运行测试程序测试性能情况:

server 端启动 Redis 服务:

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

client 端运行 Redis-benchmark:

/root/redis-4.0.14/src/redis-benchmark -h server_ip -p 6379 -t get -r 100000000 -n 120000000 -c 64 -d 64 >> ./get_6379.redis

查看测试结果,如下展示了与普通内存型实例的对比测试结果(并行运行了 8 个 thread),可以看到基于持久内存构建的 Redis 应用,性价比有了极大的提升。

image.png

更多 Redis 版本支持请参考官网文档帮助链接:

https://help.aliyun.com/document_detail/188250.html?spm=5176.10695662.1996646101.searchclickresult.183472f1avSvqZ

总结

本文对 Redis 做了简单的介绍,并分享了如何基于 Re6p 搭建高性价比的 Redis 负载运行环境,希望对大家有所帮助。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
13天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
127 6
|
14天前
|
存储 缓存 NoSQL
【Go语言专栏】Go语言中的Redis操作与缓存应用
【4月更文挑战第30天】本文探讨了在Go语言中使用Redis进行操作和缓存应用的方法。文章介绍了Redis作为高性能键值存储系统,用于提升应用性能。推荐使用`go-redis/redis`库,示例代码展示了连接、设置、获取和删除键值对的基本操作。文章还详细阐述了缓存应用的步骤及常见缓存策略,包括缓存穿透、缓存击穿和缓存雪崩的解决方案。利用Redis和合适策略可有效优化应用性能。
|
1天前
|
存储 编解码 安全
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
在阿里云的活动中,属于计算型实例规格的云服务器主要有计算型c7、计算型c7a、计算型c8a、计算型c8y、计算型c8i这几个实例规格,属于通用型实例规格的云服务器有通用型g7、通用型g7a、通用型g8a、通用型g8y、通用型g8i,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y、内存型r8i等实例。不同实例规格的云服务器在架构、计算、存储、网络、安全等方面有着不同,因此,其适用场景也有所不同。本文来详细介绍一下阿里云服务器计算型、通用型、内存型主要实例计算、存储等性能及其适用场景,以供参考。
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
|
3天前
|
存储 编解码 网络协议
阿里云服务器计算型c7、计算型c7a、计算型c8a、计算型c8y实例区别及选择参考
在阿里云的活动中,属于计算型实例规格的云服务器一般会有计算型c7、计算型c7a、计算型c8a、计算型c8y这几个实例规格,与经济型e实例相比,这些实例均属于企业级实例,与通用算力u1实例相比的话这些实例规格等性能更强,这些计算型实例主要适用于网站应用、批量计算、视频编码等各种类型和规模的企业级应用,本文为大家介绍计算型c7、c7a、c8a、c8y实例区别,以供参考。
阿里云服务器计算型c7、计算型c7a、计算型c8a、计算型c8y实例区别及选择参考
|
3天前
|
存储 NoSQL Redis
Redis数据结构精讲:选择与应用实战指南
Redis数据结构精讲:选择与应用实战指南
14 0
|
4天前
|
运维 云计算
阿里云实例体验分享
分享下这一周使用以来的亲身感受吧!
|
6天前
|
编解码 缓存 安全
阿里云目前活动内各云服务器实例规格适用场景与价格参考
目前阿里云的活动中,云服务器有多种不同实例规格可选,实例规格定义了实例的基本属性:CPU和内存(包括CPU型号、主频等),但是不同实例规格所适用的场景是不一样的,价格也有很大差别,有的用户初次选购阿里云服务器可能并不知道这些实例规格的具体适用场景,下面是小编整理汇总的2024年截止目前阿里云的活动中云服务器实例规格适用场景与活动价格,以供参考。
阿里云目前活动内各云服务器实例规格适用场景与价格参考
|
14天前
|
监控 NoSQL 算法
深入剖析Redis哨兵模式的原理和应用
Redis的哨兵模式是实现高可用性和自动故障转移的机制,当主服务器故障时,哨兵能自动检测并进行故障转移,确保服务连续和稳定性。哨兵模式通过监控主从服务器状态、自动故障转移、防止数据不一致,提高容错能力和负载均衡,降低运维成本,实现高可用性。哨兵通过检测主观下线和客观下线状态,以及选举Leader Sentinel来协调故障转移。Raft算法在其中用于领导者选举和状态一致性。哨兵模式通过综合考虑多种因素选举新主服务器并执行故障转移,保障集群稳定运行。
67 0
深入剖析Redis哨兵模式的原理和应用
|
14天前
|
存储 弹性计算 运维
深度解读:阿里云服务器ECS经济型e实例配置整理和性能参数表
阿里云推出经济型ECS e系列服务器,适用于个人开发者、学生和小微企业。该系列采用Intel Xeon Platinum处理器,支持多种CPU内存配比,性价比高,2核2G3M配置只需99元/年,新老用户不限量购买且续费不涨价。提供相同可用性SLA和安全标准,具备ESSD Entry云盘等企业级特性。适合中小型网站、开发测试和轻量级应用
|
4天前
|
弹性计算 运维 监控
解密阿里云弹性计算:探索云服务器ECS的核心功能
阿里云ECS是核心计算服务,提供弹性云服务器资源,支持实例按需配置、集群管理和监控,集成安全防护,确保服务稳定、安全,助力高效业务运营。
30 0