软件简介
整合 RedisTemplate 与 StringRedisTemplate,开箱即用,提供更友好更完善的 API,更方便的调用,支持
Jedis、Lettuce、Redisson 等主流客户端,并且在非集群模式下支持分片操作
安装教程
mvn clean install
使用说明
一、准备工作
添加依赖:
wiki.xsx
redis-spring-boot-starter
RELEASE
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
让 redis 的使用变得更简单!