检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发参考 开发运维规范 命令兼容列表 通过程序代码连接实例示例 Lua脚本编写规范 keyspace通知功能 exHash命令列表 大Bitmap初始化 客户端连接池参数配置 通过openAPI实现自定义周期备份 通过并行SCAN提升全库扫描速度 使用 Pipeline 访问 GeminiDB
开发运维规范 本章节结合华为云数据库开发运维经验,从开发和运维角度为您提供GeminiDB Redis产品使用规范。根据这些建议,您可以有效评估以及改善业务系统稳定性。 开发规范 在开发业务程序时需重点关注以下开发规范,避免因使用方式不当影响业务稳定。 表1 GeminiDB Redis
GeminiDB Redis 消息发布与订阅 华为云数据库GeminiDB Redis 100%兼容开源Redis的消息发布(Publish)与订阅(Subscribe)功能,可参考此文档对自身业务进行适配。 Pub/Sub介绍 SUBSCRIBE、UNSUBSCRIBE 和 PUBLISH
简单易用:提供了丰富的API,使开发者可以轻松地在Java应用中使用分布式锁。 可靠性:Redisson的分布式锁具有高可靠性,即使在网络分区或节点宕机的情况下,也能保证锁的正确性。
keyspace通知功能 所有支持订阅与发布功能的客户端都可以在不做任何修改的情况下, 直接使用键空间通知功能。 使用须知 因为开启键空间通知功能需要消耗一些CPU,所以在默认配置下,该功能处于关闭状态。 不建议在高压场景下使用键空间通知功能,不仅会影响实例性能,而且部分事件通知可能被丢弃
针对某些不合法命令,GeminiDB Redis接口与开源Redis 5.0的报错信息为什么有差异 GeminiDB Redis接口先进行命令语法检查,再进行key存在性校验,而开源Redis没有准则,处理不合法命令的结果存在随机性。 因此在某些不合法命令的报错信息上二者有时会存在差异
对于阻塞命令,GeminiDB Redis接口(主备实例)与开源Redis的返回值为什么可能有差异 开源Redis没有规定“当有客户端执行了阻塞命令等待key写入的情况,并发对这些key执行写命令”的返回值。 GeminiDB Redis主备实例的接口返回值可能和开源Redis不一样
对于scan类的操作,GeminiDB Redis接口与开源Redis 5.0的返回值顺序为什么有差异 开源Redis没有规定如下情况的排序准则,故GeminiDB Redis接口的返回顺序可能和开源Redis不一样,但两者均满足开源文档描述行为。 scan/hscan/sscan
通过程序代码连接实例示例 通过Jedis连接实例 通过Redisson连接实例 通过Hiredis连接实例 通过NodeJs连接实例 通过PHP连接实例 通过Python连接实例 通过Go语言连接实例 通过C#语言连接实例 使用Sentinel兼容模式连接实例 父主题: 开发参考
大Bitmap初始化 Bitmap,即位图类型,开源Redis直接使⽤STRING类型表达,因此可能会产⽣超⼤的STRING数据,进⽽在某些场景下出现⼤KEY的性能问题。GeminiDB Redis的Bitmap类型采⽤的是特殊编码的格式,内部采⽤分片算法,可以规避产⽣⼀个超⼤的STRING
GeminiDB Redis事务处理 事务介绍 事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑操作单元,是一个执行的整体,整个事务要么成功,要么失败。在一个连接中,当客户端执行multi命令后,redis开始将后续收到的命令缓存在队列中,当客户端发送exec命令时,redis
客户已有业务实现“db”+“缓存”,推荐使用内存加速吗?哪种场景可以让客户使用内存加速方案? 客户已有使用“db”+“缓存”的业务,建议继续使用原方案,可以把缓存数据迁移到GeminiDB Redis继续使用。新业务推荐使用内存加速,以简化开发。 父主题: 内存加速
约束与限制 云数据库 GeminiDB Redis在使用上有一些固定限制,用来提高实例的稳定性和安全性。 规格与限制 表1 规格说明 资源类型 规格 说明 CPU和内存规格 GeminiDB Redis支持Proxy集群版、Cluster集群版、主备版。 不同版本规格具体参见实例规格说明
Lua脚本编写规范 Lua是一种脚本语言,目的是为了嵌入应用程序中,为应用程序提供灵活的扩展和定制功能。GeminiDB Redis使用的是Lua5.1.5版本,与开源Redis5.0使用的Lua版本是一致的。 使用Lua脚本时,需要经过谨慎的校验,否则可能出现死循环、业务超时等情况
exHash命令列表 exHash是一种可为field设置过期时间和版本的Hash类型数据结构,提高了Hash数据结构的灵活性,简化了很多场景下的业务开发工作。 主要特征 field支持单独设置expire和version。 field支持高效灵活的主动、被动过期淘汰(expire
客户端连接池参数配置 合理的连接池参数设置能够有效地提升客户端使用Redis性能,不合理的配置(如连接数配置过小)可能引起应用程序无法获取连接,影响生产业务。本文以Redis客户端Jedis的连接池JedisPool为例,介绍JedisPool的使用和参数进行说明,为业务开发人员提供最佳配置的参考
GeminiDB Redis客户端重试指南 Redis客户端设置重试机制可以在网络不稳定或服务器临时故障的情况下,尽量保持应用程序的高可用性和稳定性。 GeminiDB Redis可能会遇到如下一些临时性故障场景 原因 说明 触发高可用机制的场景 GeminiDB Redis支持自动监测各个节点的健康状态
通过并行SCAN提升全库扫描速度 当实例中的key数量较多时,传统的SCAN命令扫描耗时久,开源Redis较难解决该痛点问题。GeminiDB Redis基于分布式架构,支持用户同时对多个数据分区进行并行扫描,达到并行提速效果。 注意事项 该方案仅适用于GeminiDB Redis
命令兼容列表 GeminiDB(Redis接口)提供集群版和主备版,同时兼容社区Redis 5.0及以下版本(100%)、Redis 6.2(包含6.2.x)、Redis 7.0命令,应用上云无需修改代码。 本章节详细介绍GeminiDB (Redis 接口) Redis 5.0、
通过openAPI实现自定义周期备份 游戏业务经常选用GeminiDB Redis存储玩家数据,兼顾低时延和数据持久化特性。本文介绍通过openAPI编写手动备份脚本,实现自定义备份周期(例如每2小时或4小时备份一次)。 GeminiDB Redis备份时仅需在存储层打秒级快照并上传