云数据库 Redis
  • 产品发布记录
  • 新手引导
  • 产品简介

  • 购买指南

  • 快速入门

  • 操作指南

  • 性能白皮书
  • API文档

  • 最佳实践

  • 常见问题

  • 故障处理

    • Redis无法连接
    • 使用Csredis客户端时出现Unexpected end of stream异常
    • 使用redis-py客户端时连接集群时报错
    • 使用Jedis客户端时出现Unexpected end of stream异常
    • 使用Jedis客户端时出现OOM异常
    • 如何处理大key问题
      • 问题描述
      • 获取大Key
        • 前提条件
        • 操作步骤
      • 优化大Key
  • 服务条款
  • 相关概念
  • 联系我们
  • 云数据库Redis
  • 故障处理
云数据库 Redis

云数据库Redis是首云提供的兼容开源Redis协议标准、基于键值对形式存储的内存数据库服务,具有高可用、高可靠、弹性扩展等特点。支持主从和集群两种架构,可实现亚毫秒级响应时间,每秒处理数十万个请求,可满足高吞吐、低延迟及弹性变配等业务需求。

  • 产品简介
    • 产品概述

    • 产品优势

    • 应用场景

    • 产品系列

    • 命令支持

    • 地域与可用区

  • 购买指南
    • 计费概述

    • 购买方式

    • 欠费说明

    • 调整实例规格费用说明

  • 快速入门
    • 创建Redis实例

    • 设置白名单

    • 连接Redis实例

  • 操作指南
    • 使用限制

    • 操作总览

    • 管理实例

    • 连接实例

    • 网络与安全

    • 备份与恢复

    • 数据迁移

    • 监控告警

    • 账号与密码

    • 参数配置

    • 禁用命令

    • 标签管理

  • API文档
    • 认证方式

    • API概览

    • 实例相关接口

    • 备份相关接口

    • 错误码

  • 最佳实践
    • 消息发布订阅

    • 管道传输

    • 事务处理

  • 常见问题
    • 购买计费

    • 连接登录

    • 使用数据库

    • 监控报警

    • 持久化

    • 缓存策略

  • 故障处理
    • Redis无法连接

    • 使用Csredis客户端时出现Unexpected end of stream异常

    • 使用redis-py客户端时连接集群时报错

    • 使用Jedis客户端时出现Unexpected end of stream异常

    • 使用Jedis客户端时出现OOM异常

    • 如何处理大key问题

如何处理大key问题

最后更新时间:2021-12-30 生成PDF文件 | 前往GitHub编辑

# 问题描述

当一个Key的Value过大或List、Hash等类型的数据中存储了大量的元素时,读取、删除这些数据的操作可能会耗费较长时间,阻塞单线程的Redis服务。此时您需要对内存结构进行优化,找出大Key并进行调整。

# 获取大Key

查找大Key的方法多种多样,以下介绍使用redis-cli工具查找大Key的方法。

# 前提条件

  • 具备可以与Redis实例互通的云服务器。
  • 云服务器中已经安装原生Redis。

# 操作步骤

执行以下命令:

redis-cli -h 服务IP -a 密码 --bigkeys
1

说明:

  • -h指定Redis的内网连接地址。
  • -a指定Redis的认证密码。
  • --bigkeys查找大Key。

显示结果如下:

redis-cli  -h 10.XX.XX.3 -a XXXX --bigkeys 
# Scanning the entire keyspace to find biggest keys as well as
# average sizes per key type.  You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usually needed).
[00.00%] Biggest zset   found so far 'testzset' with 129 members  
[00.00%] Biggest hash   found so far 'h2' with 513 fields
[00.00%] Biggest set    found so far 'si1' with 5 members
[00.00%] Biggest hash   found so far 'h4' with 514 fields
[00.00%] Biggest string found so far 'key' with 9 bytes
-------- summary -------
Sampled 9 keys in the keyspace!
Total key length in bytes is 27 (avg len 3.00)
Biggest string found 'key' has 9 bytes
Biggest    set found 'si1' has 5 members
Biggest   hash found 'h4' has 514 fields
Biggest   zset found 'testzset' has 129 members
1 strings with 9 bytes (11.11% of keys, avg size 9.00)
0 lists with 0 items (00.00% of keys, avg size 0.00)
2 sets with 8 members (22.22% of keys, avg size 4.00)
4 hashs with 1541 fields (44.44% of keys, avg size 385.25)
2 zsets with 132 members (22.22% of keys, avg size 66.00)
0 streams with 0 entries (00.00% of keys, avg size 0.00)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 优化大Key

对于大Key,如果是一个Key的Value过大,您可以将对象拆分成多个 key-value,将操作压力平摊到多个 Redis 实例。如果是 Key 过多,您可以参考 hash 结构存储,将多个 Key 存储在一个 hash 结构中。

使用Jedis客户端时出现OOM异常
服务条款

← 使用Jedis客户端时出现OOM异常 服务条款→

最近更新
01
_index
08-18
02
将备份数据迁移至首云Redis
07-11
03
监控概览
04-08
更多文章>

版权所有 ©2005 - 2024 Capitalonline Data Service Co., Ltd 备案序号:京ICP备06033943号 京公网安备:11010502020343号

北京首都在线科技股份有限公司(总部) 经营许可证:B1.B2-20140358 上海红之盟网络科技有限公司(首都在线全资子公司) 经营许可证:B1-20194861