# Redis BotManager
[![](https://img.shields.io/badge/simple--robot-module-green)](https://github.com/ForteScarlet/simple-robot-core) [![](https://img.shields.io/maven-central/v/love.forte.simple-robot-module/mod-redis-botmanger)](https://search.maven.org/artifact/love.forte.simple-robot-module/mod-redis-botmanger)
## **介绍**
有时候,你并不想每次修改bot账号都要去修改配置文件
有时候,你可能使用的集群搭载的Bot服务器,并且希望集群下的simbot程序能够共享Bot注册信息
有时候......
Redis BotManager模组可以为simbot程序提供一个新的使用Redis管理的`BotManager`实例来替代程序中默认的`BotManager`,实现通过Redis来管理Bot的注册信息。
>[info] 模组默认使用Jedis-3.2.0与Redis进行交互。
## **使用**
首先保证核心版本为`1.12`及以上。
> 关于核心的判断,参考文档的章节:**核心版本与组件如何升级核心**。
版本参考:[![](https://img.shields.io/maven-central/v/love.forte.simple-robot-module/mod-redis-botmanger)](https://search.maven.org/artifact/love.forte.simple-robot-module/mod-redis-botmanger)
导入依赖(以maven为例):
```xml
<dependency>
<groupId>love.forte.simple-robot-module</groupId>
<artifactId>mod-redis-botmanger</artifactId>
<version>${version}</version>
</dependency>
```
然后在配置文件中配添加置,完整配置内容如下:
```properties
### 省略掉其他... ###
#redis的ip
simbot.module.redis.ip=
#redis的port
simbot.module.redis.port=
#redis的password
simbot.module.redis.password=
#连接的数据库,默认为0
simbot.module.redis.database=
#最大连接
simbot.module.redis.maxTotal=
#最大空闲
simbot.module.redis.masIdle=
#最小空闲
simbot.module.redis.minIdle=
#最大等待时间
simbot.module.redis.maxWait=
#从jedis连接池获取连接时,校验并返回可用的连接
simbot.module.redis.testBorrow=
#把连接放回jedis连接池时,校验并返回可用的连接
simbot.module.redis.testReturn=
#创建jedis连接时,校验并返回可用的连接
simbot.module.redis.testCreate=
#连接耗尽的时候,是否阻塞,false会抛出异常,true阻塞直到超时。默认为true。
simbot.module.redis.blockWhenEx
#连接超时时长
simbot.module.redis.timeOut=
#redis中缓存的key,默认为'simbot:bot:manager'
simbot.module.redis.key=
```
所有的配置均存在默认值,一般只需要配置一下redis的地址就好了。例如:
```properties
#redis的ip
simbot.module.redis.ip=127.0.0.1
#redis的port
simbot.module.redis.port=6379
```
配置完成后,直接启动即可。你可以通过`BotManager`的`registerBot(...)`方法观察到redis的变化,然后删除掉配置文件中的账号信息再启动一次试试吧。
## **其他**
如果你想要通过代码配置,则在一个可以被扫描到的位置创建一个RedisBotManagerConfiguraiton类(名称任意),并注入一个优先级**至少**为`PriorityConstant.SECOND_LAST`的`RedisParameters`实例。
例如:
```java
@Beans
public class TestRedisConfiguration {
// 优先级至少为PriorityConstant.SECOND_LAST,即倒数第二
@Beans(priority = PriorityConstant.SECOND_LAST)
public RedisParameters getRedisParameters(){
RedisParameters rp = new RedisParameters();
// 配置信息.... rp.setXxx(....)
return rp;
}
}
```
如果想要修改RedisBotManager中对于Redis的交互方面的代码,可以注入一个优先级**至少**为`PriorityConstant.SECOND_LAST`的`BotManagerRedisOperator`实例。
例如:
```java
/**
* 优先级至少为PriorityConstant.SECOND_LAST,即倒数第二
* @param jedisPool jedisPool, 你可以用过依赖工厂自动获得
* @param redisParameters redisParameters,你可以用过依赖工厂自动获得
*/
@Beans(priority = PriorityConstant.SECOND_LAST)
public BotManagerRedisOperator getDefaultRedisOperator(JedisPool jedisPool, RedisParameters redisParameters){
// 获取BotManagerRedisOperator 的实例对象并返回...
return // something
}
```
基于上述同理,你可以进行覆盖的依赖有(除了`BotManager`实例):`RedisParameters`、`BotManagerRedisOperator`、`JedisPool`
你可能会用到的一些可注入的依赖(除了上述依赖以外):`ConfigProperties`、`PathAssembler`、`VerifyFunction`
- 前言
- 简单介绍
- 我该如何阅读文档
- 视频教程
- 安装与使用
- 开源协议
- 免责&捐助
- 注意事项
- 版本命名规则简介
- 主要功能版本历史
- 功能指引
- 通用API与功能
- 国际化语言
- 异常
- 消息监听
- @Listen
- @OnListen模板
- @Filter
- 消息参数截取
- @Spare
- @Constr
- @Ignore
- @ListenBreak
- @ListenBreakPlugin
- @ListenBody
- 监听响应
- 成功判定与返回值
- 监听上下文
- 动态参数
- 监听消息API
- 异步监听 @Async
- 限流监听 @Limit
- 自定义Http送信器
- 枚举与类型
- 送信器
- SENDER
- SETTER
- GETTER
- 返回值
- 其他位置
- 日志与日志拦截
- 异常处理
- 依赖注入
- 自定义依赖获取
- 批量依赖载入
- 注意事项
- 常量
- 定时任务
- 自定义过滤
- 拦截器
- 拦截器总定义
- 上下文对象总定义
- 监听消息拦截
- 送信器拦截
- 监听函数拦截
- CAT码
- CQ码
- CQCode
- CQ码工具类
- CQ扩展工具类
- AppendList拼接链
- 高级内容
- 阻断机制
- 截断机制
- 自定义枚举类型
- 枚举工厂
- byName注解
- 自定义注解
- 配置
- 文件配置
- 注解配置
- 参数配置
- 多配置
- 多账号
- 自定义账号管理器
- 小心!
- 核心版本与组件如何升级核心
- 核心版本迭代指南
- 核心
- 更新日志
- jar包与依赖
- 监听消息类结构图
- 快速启动
- 模组与扩展
- 模组开发
- 现有模组
- 通用模组-延时任务
- 通用模组-CQ码工具
- 转义器
- CQ码操作工具类
- CQ码模板-CodeTemplate
- CQ码载体-KQCode
- CQ码构建器
- MQ码工具类
- 通用模组-redis-bot管理器
- 通用模组-Debugger
- Debugger-common模块
- Debugger-server模块
- Debugger-client模块
- 通用模组-钉钉机器人
- 组件-Mirai(JVM)
- 快速开始(1.13+)
- springboot-starter
- 注意事项
- 配置
- 额外的内容
- 快速回复
- 额外监听
- CQ码解析
- 组件-酷Q(QQ)-CQ HTTP API(基本失效)
- 快速开始(推荐)
- 快速开始(1.7.x以下,不推荐)
- 快速开始(Springboot启动器)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 额外的内容
- 自定义额外监听
- CQ送信器
- 元事件
- 监听消息类结构图
- 组件-酷Q(QQ)-JCQ(失效)
- 快速开始
- 更新日志
- 额外的内容
- JCQ日志
- 配置
- 注意事项
- 监听消息类结构图
- 组件-酷Q(QQ)-HTTP TO CQ(失效)
- 快速开始(核心1.7.x及以下)
- 启动器、启动接口与配置类
- 配置
- 文件配置
- 注意事项
- 更新日志
- 监听消息类结构图
- 组件-酷Q(QQ)-LEMOC (失效)
- 快速开始(核心1.7.x及以下)
- 配置
- 注意事项
- 更新日志
- 监听消息类结构图
- Springboot快速启动器
- 常见问题汇总
- BUG反馈
- 更新计划总览