本文共 3954 字,大约阅读时间需要 13 分钟。
redis-spring-boot-starter
介绍
整合RedisTemplate与StringRedisTemplate,开箱即用,提供更友好更完善的API,更方便的调用,支持Jedis、Lettuce、Redisson等主流客户端,并且在非集群模式下支持分片操作
软件架构
依赖spring-boot-starter-data-redis
当前版本
快照版:1.6.0-SNAPSHOT (已提交中央仓库)
稳定版:1.5.2
更新说明
1.6.0-SNAPSHOT 更新如下
添加 TransactionHandler ,添加事务支持
添加 Stream 相关API
添加 ZsetHandler中 popMax 与 popMin 相关API
支持 Jedis 3.X
使用更规范的项目名,变更项目名为:redis-spring-boot-starter
稳定版将与spring-boot稳定版同步更新
安装教程
mvn clean install
文档地址
使用说明
快照版配置
pom.xml文件中添加如下配置:
org.springframework.boot
spring-boot-starter-parent
2.2.0.M4
spring-snapshots
https://repo.spring.io/snapshot
true
spring-milestones
https://repo.spring.io/milestone
稳定版配置(下一版本稳定版将更名为: redis-spring-boot-starter)
wiki.xsx
spring-boot-starter-fast-redis
1.5.2
一、准备工作
添加依赖:
wiki.xsx
redis-spring-boot-starter
X.X.X
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依赖:
org.redisson
redisson-spring-data-21
RELEASE
转载地址:http://apdoo.baihongyu.com/