该组件集成Redis, 支持Redis所有存储格式
在使用该组件之前, 必须开启Redis
需在pom文件中加入:
org.apache.camel
camel-spring-redis
x.x.x
核心语法:
spring-redis://host:port[?options]
可在后面追加相关属性 "?options=value&option2=value&"其中command指定相关命令, 默认为String类型的SET.
具体相关Redis工具类(很详细!):
https://githubcom/apache/camel/tree/main/components/camel-spring-redis/src/test/java/org/apache/camel/component/redis
Hash相关命令
命令 | 描述 | 参数 | 返回值类型 |
---|---|---|---|
HSET | 添加哈希字段 | CamelRedis.Key(String),CamelRedis.Field(String),CamelRedisValue(Object) | void |
HGET | 获取哈希字段 | CamelRedis.Key(String),CamelRedis.Field(String) | String |
HSETNX | 当该字段不存在时,添加哈希字段值 | CamelRedis.Key(String),CamelRedis.Field(String),CamelRedisValue(Object) | void |
HMSET | 给多个哈希字段赋值 | CamelRedis.Key(String),Map |
void |
HMGET | 获取所有已赋值字段内容 | CamelRedis.Key(String),CamelRedis.Field(String)s(Collection |
Collection |
HINCRBY | 将哈希字段的整数值递增给定的数字 | CamelRedis.Key(String),FIeld,CamelRedisValue(Object) | Long |
HEXISTS | 确定是否存在哈希字段 | CamelRedis.Key(String),CamelRedis.Field(String) | Boolean |
HDEL | 删除一个或多个字段 | CamelRedis.Key(String),CamelRedis.Field(String) | void |
HLEN | 从哈希字段中获取字段位置 | CamelRedis.Key(String) | Long |
HKEYS | 获取哈希字段所有CamelRedis.Key(String) | CamelRedis.Key(String) | Set |
HVALS | 获取哈希字段所有值 | CamelRedis.Key(String) | Collection |
HGETALL | 获取哈希中所有CamelRedis.Key(String)和对应值 | CamelRedis.Key(String) | Map |
List相关命令
RPUSH | 将一个或多个值附加到List | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Long |
---|---|---|---|
RPUSHX | 仅当列表存在时,才将值附加到列表 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Long |
LPUSH | 在列表前面(从左加入)加上一个或多个值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Long |
LLEN | 获取List长度 | CamelRedis.Key(String) (String) | Long |
LRANGE | 从列表中获取一系列元素 | ||
CamelRedis.Key(String) (String), Start (Long), End (Long) | List | ||
LTRIM | 修改List到指定范围 | CamelRedis.Key(String) (String), Start (Long), End (Long) | void |
LINDEX | 按索引从列表中获取元素 | ||
CamelRedis.Key(String) (String), Index (Long) | String | ||
LINSERT | 在列表中的一个元素之前或之后插入一个元素 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Pivot (String), Position (String) | Long |
LSET | 通过索引设置列表中元素的值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Index (Long) | void |
LREM | 从列表中删除元素 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Count (Long) | Long |
LPOP | 删除并获取列表中的第一个元素 | CamelRedis.Key(String) (String) | Object |
RPOP | 删除并获取列表中的最后一个元素 | CamelRedis.Key(String) (String) | String |
RPOPLPUSH | 删除列表中的最后一个元素,将其附加到另一个列表并返回它 | CamelRedis.Key(String) (String), Destination (String) | Object |
BRPOPLPUSH | 从列表中弹出一个值,将其推送到另一个列表并返回;或封锁直到有人可用 | CamelRedis.Key(String) (String), Destination (String), Timeout (Long) | Object |
BLPOP | 删除并获取列表中的第一个元素,或阻塞直到有可用元素 | CamelRedis.Key(String) (String), Timeout (Long) | Object |
BRPOP | 删除并获取列表中的最后一个元素,或阻塞直到一个元素可用 | CamelRedis.Key(String) (String), Timeout (Long) | String |
Set相关命令
SADD | 向集合中添加一个或多个键值对 | CamelRedis.Key(String) (String),CamelRedisValue(Object) (Object) | Boolean |
---|---|---|---|
SMEMBERS | 获取集合中所有键值对 | CamelRedis.Key(String) (String) | Set |
SREM | 从集合中删除一个或多个键值对 | CamelRedis.Key(String) (String),CamelRedisValue(Object) (Object) | Boolean |
SPOP | 从集合中移除并返回随机值 | CamelRedis.Key(String) (String) | String |
SMOVE | 将键值对从一个集合移动到另一个集合 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Destination (String) | Boolean |
SCARD | 获取集合中的键值对数 | CamelRedis.Key(String) (String) | Long |
SISMEMBER | 判断给定值是否为集合的元素 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Boolean |
SINTER | 多个集合交集 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String) | Set |
SINTERSTORE | 交集存储新键 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String), Destination (String) | void |
SUNION | 添加多个集合 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String) | Set |
SUNIONSTORE | 添加多个集合并将生成的集合存储在一个键中 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String), Destination (String) | void |
SDIFF | 集合差集 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String) | Set |
SDIFFSTORE | 集合差集存储一个键中 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String), Destination (String) | void |
SRANDMEMBER | 随即取出一个或多个集合成员 | CamelRedis.Key(String) (String) | String |
Zset相关命令
ZADD | 将一个或多个成员添加到排序集,如果存在分数则更新分数 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Score (Double) | Boolean |
---|---|---|---|
ZRANGE | 按索引返回排序集中的成员范围 | CamelRedis.Key(String) (String), Start (Long), End (Long), WithScore (Boolean) | Object |
ZREM | 从排序集中删除一个或多个成员 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Boolean |
ZINCRBY | 增加排序集中某个成员的得分 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Increment (Double) | Double |
ZRANK | 确定排序集中成员的索引 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Long |
ZREVRANK | 在排序的集合中确定成员的索引,分数从高到低排列 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Long |
ZREVRANGE | 按索引返回排序集中的成员范围,分数从高到低排列 | CamelRedis.Key(String) (String), Start (Long), End (Long), WithScore (Boolean) | Object |
ZCARD | 获取排序集中的成员数 | CamelRedis.Key(String) (String) | Long |
ZCOUNT | 在给定值范围内对分数已排序的集合中的成员进行计数 | CamelRedis.Key(String) (String), Min (Double), Max (Double) | Long |
ZRANGEBYSCORE | 按分数返回排序集中的成员范围 | CamelRedis.Key(String) (String), Min (Double), Max (Double) | Set |
ZREVRANGEBYSCORE | 按分数返回排序集中的成员范围,分数从高到低排列 | CamelRedis.Key(String) (String), Min (Double), Max (Double) | Set |
ZREMRANGEBYRANK | 移除给定索引内已排序集合中的所有成员 | CamelRedis.Key(String) (String), Start (Long), End (Long) | void |
ZREMRANGEBYSCORE | 删除给定分数内已排序集合中的所有成员 | CamelRedis.Key(String) (String), Start (Long), End (Long) | void |
ZUNIONSTORE | 添加多个排序集,并将结果排序集存储在新键中 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String), Destination (String) | void |
ZINTERSTORE | 将多个排序集相交取交集,并将得到的排序集存储在新键中 | CamelRedis.Key(String) (String), CamelRedis.Key(String)s (String), Destination (String) | void |
String相关命令
SET | 添加String类型字符串 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | void |
---|---|---|---|
GET | 获取Stirng字符串的值 | CamelRedis.Key(String) (String) | Object |
STRLEN | 获取存储在键中的值的长度 | CamelRedis.Key(String) (String) | Long |
APPEND | 追加值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (String) | Integer |
SETBIT | 设置或清除键处存储的字符串值中偏移量处的位 | CamelRedis.Key(String) (String), Offset (Long), CamelRedisValue(Object) (Boolean) | void |
GETBIT | 返回键处存储的字符串值中偏移量处的位值 | CamelRedis.Key(String) (String), Offset (Long) | Boolean |
SETRANGE | 覆盖从指定偏移量开始的键处的字符串部分 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Offset (Long) | void |
GETRANGE | 获取存储在键中的字符串的子字符串 | CamelRedis.Key(String) (String), Start (Long), End (Long) | String |
SETNX | 仅当键不存在时才设置键的值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Boolean |
SETEX | 设置键的值和过期时间 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object), Timeout (Long), SECONDS | void |
DECRBY | 将键的整数值递减给定的数字 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Long) | Long |
DECR | 将键的整数值减一 | CamelRedis.Key(String) (String), | Long |
INCRBY | 将键的整数值增加给定的量 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Long) | Long |
INCR | 将键的整数值一个一个地递增 | CamelRedis.Key(String) (String) | Long |
MGET | 获取所有给定键的值 | ||
CamelRedis.Field(String)s (Collection |
List | ||
MSET | 将多个键设置为多个值 | CamelRedisValue(Object)s(Map |
void |
MSETNX | 仅当没有键存在时,才将多个键设置为多个值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | void |
GETSET | 设置键的字符串新值并返回其旧值 | CamelRedis.Key(String) (String), CamelRedisValue(Object) (Object) | Object |
示例1: 自定义Key等相关参数
ceshi1
ceshi2
${body}
- {{spring.redis.host/port}}在配置文件中给出.
- command指定本次命令.
- Header中包含的信息应为命令对应参数(即表格中的参数信息).
- body为前端传入参数, 可后续处理.
- 示例为往Redis中添加Hash类型参数.
示例2: 从参数中获取Key等参数
传参:
{
"key":"1111",
"field":"2222",
"body":"这是一次测试"
}
路由:
$.key
$.field
$.body
- "$.**"前后端名称应该保持一致.
示例3: 获取redis中相关参数
参数:
{
"key":"1111",
"field":"2222"
}
路由:
$.key
$.field
响应:
[图片上传失败...(image-fa8434-1667627842828)]
- 与加入redis写法相似, 与其相关参数保持一致.
- 响应参数可进一步处理(添加自定义键值等).
可以看出通过Camel连接Redis并进行相关操作要比代码编写相对简单, 但也存在逻辑复杂无法实现情况, 总体来说它提供了一个便捷的方式提供开发人员使用.