redis-spring-boot-starter整合 RedisTemplate 与 StringRedisTemplate
整合 RedisTemplate 与 StringRedisTemplate,开箱即用,提供更友好更完善的 API,更方便的调用,支持 Jedis、Lettuce、Redisson 等主流客户端,并且在非集群模式下支持分片操作
安装教程
mvn clean install
使用说明
一、准备工作
- 添加依赖:
<dependency> <groupId>wiki.xsx</groupId> <artifactId>redis-spring-boot-starter</artifactId> <version>RELEASE</version> </dependency>
- redis配置:
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(); });
特别说明
- @since 为redis最低版本所支持的方法,例如@since redis 1.0.0表示1.0.0的redis版本即可使用该方法
- XXXAsObj为对象类型序列化相关方法,XXX为字符串类型序列化相关方法
- 默认使用 JsonRedisSerializer(自定义的json序列化器) 作为对象序列化工具
- 分布式锁需依赖 redisson ,如需使用,请添加对应依赖
redisson依赖:
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson-spring-data-21</artifactId> <version>RELEASE</version> </dependency>
让 redis 的使用变得更简单!
更多 API 请查看:https://gitee.com/xsxgit/redis-spring-boot-starter
评论