检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Redis实例内存使用率高问题排查和解决 问题现象 Redis可提供高效的数据库服务,当内存不足时,可能导致Key频繁被逐出、响应时间上升、QPS(每秒访问次数)不稳定等问题,进而影响业务运行。
分布式缓存服务是一款内存数据库服务,兼容了Redis和Memcached两种内存数据库引擎,为您提供即开即用、安全可靠、弹性扩容、便捷管理的在线分布式缓存能力,满足用户高并发及数据快速访问的业务诉求。 您可以使用本文档提供API对分布式缓存服务进行相关操作,如创建、删除、扩容等。
安全白皮书 分布式缓存服务(Distributed Cache Service,简称DCS)是华为云提供的一款安全、可信的内存数据库服务。 DCS秉承华为云对租户的安全承诺,尊重租户数据主权,坚持中立、客观的立场,恪守业务边界,不碰租户数据,不会利用租户数据谋取商业价值。
mysql -h <MySQL host> -P <MySQL port> -u <MySQL username> -D <MySQL database name> -p --skip-column-names --raw < migrate.sql | redis-cli -h
- 防止缓存穿透 非关键路径透传数据库,建议对访问数据库进行限流。 - 从Redis获取数据未命中时,访问只读数据库实例。可通过域名等方式对接多个只读实例。 核心是未命中的缓存数据不会打到主库上。 用域名对接多个只读数据库实例,一旦出现问题,可以增加只读实例应急。
这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。Redis对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服务之一。
Redis实例支持多DB方式的情况如下: Redis单机、读写分离和主备缓存实例支持多数据库(多DB),默认256个,DB编号为0-255。默认使用的是DB0。多数据库主要用于数据隔离,每个数据库的大小不是平均分配,可能会出现一个数据库将实例的内存完全占用的情况。
创建的缓存实例为什么可使用内存比实例规格少一些? Redis 3.0、Memcached采用虚拟机部署,系统会占用小部分内存。其他版本的实例不会存在该问题。 父主题: Redis使用
数据备份/导出/迁移 DCS实例是否兼容低版本Redis迁移到高版本 不同类型的操作系统间进行数据传递和操作,需要注意什么? 源Redis使用了多DB,能否迁移数据到集群实例? 源Redis迁移到集群实例中有哪些限制和注意事项? 在线迁移需要注意哪些? 在线迁移能否做到完全不中断业务
容灾和多活策略 DCS缓存实例都存储着大量关键数据,不论是作为数据库前端缓存,还是作为数据存储引擎,数据的可靠性与服务的连续可用性是DCS服务设计上为客户考虑的核心因素,下图展示了DCS在数据和服务方面的容灾架构设计演进。
如何查看Redis内存占用量 当前DCS Redis提供了以下与内存相关的指标。查看监控指标的方式请参考查看性能监控。 表1 Redis实例支持的监控指标 指标ID 指标名称 含义 取值范围 测量对象&维度 监控周期(原始指标) memory_usage 内存利用率 该指标用于统计测量对象的内存利用率
Memcached是一种内存Key-Value缓存系统,它支持简单字符串数据的存取,通常作为后端数据库内容缓存,以提升web的应用性能,降低对后端数据库的性能依赖,具体了解请参考Memcached(已停售)典型应用场景。
AOF文件在什么情况下会被重写 AOF文件重写涉及到以下概念。 重写时间窗:目前该时间窗为凌晨1:00 - 4:59。 磁盘阈值:即磁盘的使用率超过50%,即认为达到阈值。 数据集使用内存:实例的一个监控指标,用于统计Redis中数据集占用的内存。 AOF文件在以下三种情况下会被重写
单机实例支持多个数据库(DB),请选择其中一个DB进行数据存储。此处选择“Database 0”。 图2 选择Database 在命令输入框输入Redis命令,例如,通过SET命令写入一个名称为“KEY_NAME”,值为“VALUE”的数据,按Enter键执行。
迁移实例数据 DCS数据迁移概述 迁移方案说明 DCS实例间迁移 自建Redis迁移至DCS 其他云厂商Redis迁移至DCS
两个解决思路: 源Redis的不同DB合到同一个数据库。 申请多个DCS缓存实例。 迁移后实例连接地址和数据库编号有变化,业务注意改造和适配。 如果目的实例为Proxy集群。 Proxy集群默认不开启多DB,仅有一个DB0,请参考开启多DB操作开启Proxy集群多DB设置。
监控数据出现实例已使用内存略大于实例可使用内存是什么原因? DCS单机和主备实例已使用内存为redis-server进程统计的已使用内存。集群是基于分片机制实现的,集群的已使用内存为各个分片redis-server的已使用内存的总和。 由于开源redis-server内部机制的原因
恢复DCS实例数据 本节介绍如何在DCS管理控制台将实例已备份的记录恢复到本实例中。例如在实例数据误删除的场景,您可以通过该操作恢复实例数据。 如果需要将备份数据迁移到其他DCS实例中,请参考使用备份文件离线迁移DCS Redis实例。 Proxy集群支持开启或关闭多DB,开启多DB
什么是预留内存,如何配置预留内存? 预留内存介绍 预留内存是一部分不能用来存储数据的内存空间,主要用于数据持久化,主备同步,执行实例备份等操作。 配置参数名称:reserved-memory-percent 监控中内存利用率统计是扣除预留内存的。 仅如下实例类型需要预留内存(其他实例类型不涉及
不支持,Memcached和Redis属于不同的缓存数据库,不支持互相迁移数据。 父主题: 数据备份/导出/迁移