Redis 中间件使用
使用平台内部自建的 redis 实例
平台对 Redis 的集成提供了支持,默认推荐使用 redis 租户部署的实例。同时支持单例、哨兵等多种模式,并制作了单例和哨兵模式的模板,开发者选择对应的模板组件即可使用对应的模式;
使用外部 redis
支持应用使用平台以外的 redis (外部redis)
使用平台内部自建的 redis 实例
添加 redis 实例
平台内部自建的 redis 实例是通过平台 rds 服务(newdao-common 命名空间下服务 rds-svc)自动给当前应用进行分配,如下图,所以添加前先确认平台是否有可分配的 redis 实例,如果没有则需要通过模板新建。
默认的分配标签是 defaultKind:normal,如果想自定义分配标签,可以新建分组再添加 redis 实例,同时架构图上的 redis 组件的 “服务实例规格选择器” 需要设置为自定义分配标签,这样,rds 服务才会为当前应用分配自定义分配标签下的 redis 服务实例。
没有可分配实例,可手工添加或使用模板新建
添加 redis 组件
开发架构和生产架构都同时用连接线将主服务和 Redis 组件连接起来
开发架构:
添加后到模型目录 model/native/dev/main/deploy.conifg.xml 查看引用记录
生产架构:
添加后到模型目录 model/native/production/main/deploy.conifg.xml 查看引用记录
注意:
- redis 组件属性“共享范围”,范围从小到大依次为:app(应用级)、tenant(租户级)、global(全局),概念上也比较容易理解,当前 redis 实例是只给当前用户使用,还是当前租户下的所有应用使用,再或者是整个集群环境下的应用使用。
- 把 redis 组件添加到架构里面,序号服务和用户服务是会自动连线到 redis 的,是因为这两个服务默认使用了 redis ,比如用户服务,打开用户服务模型 deploy 目录下的配置文件:
其中 optional 属性为 true ,代表可选,当前服务弱依赖 redis ,即如果有 redis 实例自动使用,若没有就不使用,也不会拋出异常。
- 至此,main 主模块即可通过 redis 环境变量获取 redis 连接信息了
环境变量:
- MAIN_REDISHOST ip/域名
- MAIN_REDISPORT 端口
- MAIN_REDISPASSWORD 密码
添加依赖
- 调用测试 api 成功
确认写入
到 redis 库中确认写入的键值对。在开发环境下,点击 IDE “高级” 页签下的 “Redis 查看” 按钮
生产环境下,到控制台 “应用服务管理” 菜单下对应应用的“资源”下查看
使用外部 redis 实例
开发时使用外部 redis
一般有两种方法
- 像上面使用平台自建 redis 实例一样的方式,新建分组,与使用内部 redis 实例不同的是,在新建的分组下面需要添加外部的 redis 实例来使用。
点击 “明细” 按钮,弹出实例列表,若没有实例,点击添加按钮添加
填写以上外部 redis 数据库连接信息,至此使用方式与使用内部 redis 别无二至
- 直接修改 redis 连接信息
架构图上直接修改 redis 组件连接信息
运行时使用外部 redis
运行时,在控制台 “应用服务管理” 下面找到对应应用的配置,中间件设置下可直接修改 redis 连接信息