正在生成
详细信息:
检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
开发参考 开发运维规范 命令兼容列表 客户端通过代码连接实例示例 Lua脚本编写规范 keyspace通知功能 exHash命令列表 大Bitmap初始化 客户端连接池参数配置 通过openAPI实现自定义周期备份 通过并行SCAN提升全库扫描速度 使用 Pipeline 访问 GeminiDB
开发运维规范 本章节结合华为云数据库开发运维经验,从开发和运维角度为您提供GeminiDB Redis产品使用规范。根据这些建议,您可以有效评估以及改善业务系统稳定性。 开发规范 在开发业务程序时需重点关注以下开发规范,避免因使用方式不当影响业务稳定。 表1 GeminiDB Redis开发规范
事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑操作单元,是一个执行的整体,整个事务要么成功,要么失败。在一个连接中,当客户端执行multi命令后,redis开始将后续收到的命令缓存在队列中,当客户端发送exec命令时,redis按照顺序依次执行队列中的所有命令。如果有一个命令执行失败则事务回滚,所有命令要么全部成功,要么全部失败。
本文介绍了使用 Pipeline 访问 GeminiDB Redis 的原理以及注意事项。 Pipeline 简介 Redis 是一个请求/响应模型的服务,通常执行一个命令的流程为: 图1 Redis 命令执行流程 客户端发送命令到 Redis 服务器。 Redis 服务器收到命令,排队等待处理。
Key:exHash的key,用于指定作为命令调用对象的exHash。 field:exHash中的一个元素,一个exHash key可以有多个field。 value:field对应的值,一个field只能有一个value。 EX:指定field的相对过期时间,单位为秒,为0表示马上过期,不传此参数表示不过期。
资源池中保持最小的空闲可用连接数,单位:个 这部分连接数不会被回收,可防止流量增量时,连接创建不及时。 0 10~20 maxWaitMillis 资源池连接用尽后,调用者的最大等待时间,单位:毫秒。 -1 建议设置一个合理的超时时间,避免出现当连接池用尽后,应用阻塞不响应的情况。 testWhileIdle 是
install bitmap # 参数 max_bytes = 1024 * 1024 * 64 # 构造一个64MB的bitmap max_bits = max_bytes * 8 # 一个byte可以存储8个bit,对应大概5亿多元素 # 这个方案不需要python内置的bitmap类型
Redis当前版本不涉及evict事件。 输入的参数中至少要有一个K或者E ,否则的话,不管其余的参数是什么,都不会有任何通知被分发。 举个例子,如果只想订阅键空间中和列表相关的通知,那么参数就应该设为Kl ,诸如此类。 将参数设为字符串 "AKE" 表示发送所有类型的通知。 父主题: 开发参考
阿里云数据库Redis/Tair到GeminiDB Redis的迁移 本章节主要介绍阿里云数据库Redis/Tair到GeminiDB Redis的迁移方案。 迁移原理 使用阿里云的数据迁移工具DTS中的数据迁移功能,该功能支持将阿里云Redis服务的数据迁移至其他Redis服务中,利用该工具避开阿里云
Redis实例的全部分区信息,用于后续的并行扫描。 数据分区:GeminiDB Redis集群实例底层存在许多数据分区,分布在不同节点上,每个分区名称为一个16字符长度的ID。一个实例底层的数据分区名称和总数量在实例创建时就固定,不会随实例变更而发生改变。 获取数据分区列表:通过执行INFO ROUTE命令可以获取GeminiDB
RocksDB是FaceBook基于LevelDB开发的一个持久化KV单机数据库引擎,具有强大的顺序读写及随机写性能。相对于LevelDB,RocksDB做了许多优化,性能有了很大提升, 而且解决了LevelDB主动限制写的问题。作为一个数据库引擎,RocksDB没有设计成C/S网络
语法为:SCRIPT GET SHA1。 Lua脚本中执行Redis命令 与开源Redis一致,GeminiDB Redis的Lua环境中也提供了一个全局的“redis”表,用于提供各类和Redis Server交互的函数。 如表1为GeminiDB Redis目前支持和不支持的操作列表。
x)命令,应用上云无需修改代码。 本章节详细介绍GeminiDB (Redis 接口) Redis 5.0、Redis 6.2(包含6.2.x)命令兼容性,供DBA和开发参考。 GeminiDB基础命令 针对社区Redis提供的全部命令类型,GeminiDB 5.0和6.2(包含6.2.x)兼容情况如下: 表1
/表示递增触发。 5/15表示从第5秒开始,每隔15秒触发。 L表示最后,只能出现在日和周两个域。L前加数据,表示在该数据的最后一个触发,如6L表示在最后一个星期五触发。 W表示离指定日期最近的工作日触发。15W表示离该月15号最近的工作日触发。 #表示每月的第几个周几。6#3表示该月的第三个周五触发。
Redis支持与限制的命令,详情请参见开发运维规范。 由于GeminiDB Redis和开源Redis集群计算hash算法不同,因此GeminiDB Redis的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发运维规范。 使用JedisCluster访问
Redis支持与限制的命令,详情请参见开发运维规范。 由于GeminiDB Redis和开源Redis集群计算hash算法不同,因此GeminiDB Redis的部分命令需要给对应的key打上hash tag,否则会出现非预期的行为。hash tag使用建议参考开发运维规范。 使用Sentinel模式连接实例
Redis的迁移 SSDB是一款使用C/C++语言开发的高性能NoSQL数据库,和Redis具有相似的API,支持KV,list,map(hash),zset(sorted set),qlist(队列)等数据结构,因此得到了广泛的应用。SSDB是一个持久化的KV存储系统,底层使用level
使用StackExchange.Redis客户端连接GeminiDB Redis实例。 创建项目 在命令行窗口中运行以下命令创建一个新的C#控制台应用程序;或者在Visual Studio中创建一个新的C#控制台应用程序。 dotnet new console -o redisdemo 安装Redis的C#客户端
h> #include <stdlib.h> #include <string.h> #include <hiredis.h> int main(int argc, char **argv) { unsigned int j; redisContext *conn;
Redis的迁移 LevelDB是一个开源的持久化KV单机数据库引擎,具有很高的随机写,顺序读/写性能,适合应用在写多读少的场景。其内部没有设计成C/S网络结构,使用时必须和服务部署在同一台服务器,对于服务的部署、使用有较大的限制。相比于在LevelDB基础上开发的RocksDB, Lev