Fetch the repository succeeded.
整合RedisTemplate与StringRedisTemplate,开箱即用,提供更友好更完善的API,更方便的调用,支持Jedis、Lettuce、Redisson等主流客户端,并且在非集群模式下支持分片操作
依赖spring-boot-starter-data-redis
2.2.8 (已提交中央仓库)
注:Stream API需使用 spring-boot 2.2.0及以上版本
mvn clean install
https://apidoc.gitee.com/xsxgit/redis-spring-boot-starter
<dependency>
<groupId>wiki.xsx</groupId>
<artifactId>redis-spring-boot-starter</artifactId>
<version>X.X.X</version>
</dependency>
yml方式:
# 默认配置
spring:
redis:
database: 0
host: localhost
password:
port: 6379
timeout: 0
ssl: false
lettuce:
pool:
max-wait: -1ms
max-active: 8
max-idle: 8
min-idle: 0
properties方式:
# 默认配置
spring.redis.database=0
spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
spring.redis.timeout=0
spring.redis.ssl=false
spring.redis.lettuce.pool.max-wait=1ms
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-idle=8
spring.redis.lettuce.pool.min-idle=0
获取操作实例:
// 获取默认数据库实例(DB)
DBHandler dbHandler = RedisUtil.getDBHandler();
...
// 获取数据库索引为2的数据库实例(DB)
DBHandler dbHandler = RedisUtil.getDBHandler(2);
...
实例 | 数据类型 | 获取方式 |
---|---|---|
NumberHandler | 数字(Number) | RedisUtil.getNumberHandler() RedisUtil.getNumberHandler(dbIndex) |
StringHandler | 字符串(String) | RedisUtil.getStringHandler() RedisUtil.getStringHandler(dbIndex) |
HashHandler | 哈希(Hash) | RedisUtil.getHashHandler() RedisUtil.getHashHandler(dbIndex) |
SetHandler | 无序集合(Set) | RedisUtil.getSetHandler() RedisUtil.getSetHandler(dbIndex) |
ZsetHandler | 有序集合(Zset) | RedisUtil.getZsetHandler() RedisUtil.getZsetHandler(dbIndex) |
HyperLogLogHandler | 基数(HyperLogLog) | RedisUtil.getHyperLogLogHandler() RedisUtil.getHyperLogLogHandler(dbIndex) |
BitmapHandler | 位图(Bitmap) | RedisUtil.getBitmapHandler() RedisUtil.getBitmapHandler(dbIndex) |
GeoHandler | 地理位置(Geo) | RedisUtil.getGeoHandler() RedisUtil.getGeoHandler(dbIndex) |
KeyHandler | 键(Key) | RedisUtil.getKeyHandler() RedisUtil.getKeyHandler(dbIndex) |
ScriptHandler | 脚本(Lua Script) | RedisUtil.getScriptHandler() RedisUtil.getScriptHandler(dbIndex) |
PubSubHandler | 发布订阅(Pubsub) | RedisUtil.getPubSubHandler() RedisUtil.getPubSubHandler(dbIndex) |
StreamHandler | 流(Stream) | RedisUtil.getStreamHandler() RedisUtil.getStreamHandler(dbIndex) RedisUtil.getStreamHandler(dbIndex, mapper) |
DBHandler | 数据库(DB) | RedisUtil.getDBHandler() RedisUtil.getDBHandler(dbIndex) |
SentinelHandler | 哨兵(Sentinel) | RedisUtil.getSentinelHandler() RedisUtil.getSentinelHandler(dbIndex) |
ClusterHandler | 集群(Cluster) | RedisUtil.getClusterHandler() |
CustomCommandHandler | 自定义命令(CustomCommand) | RedisUtil.getCustomCommandHandler() RedisUtil.getCustomCommandHandler(dbIndex) |
RedisLockHandler | 分布式锁(Lock) | RedisUtil.getRedisLockHandler() RedisUtil.getRedisLockHandler(dbIndex) |
TransactionHandler | 事务(Transaction) | RedisUtil.getTransactionHandler() RedisUtil.getTransactionHandler(dbIndex) |
List execute = RedisUtil.getTransactionHandler(2).execute(handler -> {
// 开启监控
handler.watch("xx", "test");
// 开启事务
handler.beginTransaction();
// 获取对应事务字符串助手
StringHandler stringHandler = handler.getStringHandler();
// 执行操作
stringHandler.set("xx", "hello");
stringHandler.append("xx", "world");
stringHandler.append("xx", "!");
// 获取对应事务数字助手
NumberHandler numberHandler = handler.getNumberHandler();
numberHandler.addLong("test", 100);
numberHandler.incrementLong("test");
numberHandler.incrementLong("test");
numberHandler.incrementLong("test");
// 提交事务返回结果
return handler.commit();
});
注:如只使用分布式锁,则只需引入依赖即可;如需使用redisson客户端,请先排除Lettuce客户端,然后可参照以下配置
redisson依赖:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-data-21</artifactId>
<version>X.X.X</version>
</dependency>
yml方式:
# common spring boot settings
spring:
redis:
database: 0
host: localhost
password:
port: 6379
timeout: 0
ssl: false
# Redisson settings
#path to redisson.yaml or redisson.json
redisson:
file: classpath:redisson.yaml
#或json字符串
#config: "{\"clusterServersConfig\":\"idleConnectionTimeout\":1000}"
properties方式:
# 默认配置
# common spring boot settings
spring.redis.database=0
spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
spring.redis.timeout=0
spring.redis.ssl=false
# Redisson settings
#path to redisson.yaml or redisson.json
spring.redis.redisson.file=classpath:redisson.yaml
#或json字符串
#spring.redis.redisson.config="{\"clusterServersConfig\":\"idleConnectionTimeout\":1000}"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。