# spring-boot-starter-fast-redis **Repository Path**: fengdudf/spring-boot-starter-fast-redis ## Basic Information - **Project Name**: spring-boot-starter-fast-redis - **Description**: 整合RedisTemplate与StringRedisTemplate,提供更友好更完善的API,更方便的调用,支持Jedis、Lettuce、Redisson等主流客户端,并且在非集群模式下支持分片操作 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 83 - **Created**: 2024-10-16 - **Last Updated**: 2024-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # redis-spring-boot-starter

star

#### 介绍 整合RedisTemplate与StringRedisTemplate,开箱即用,提供更友好更完善的API,更方便的调用,支持Jedis、Lettuce、Redisson等主流客户端,并且在非集群模式下支持分片操作 #### 软件架构 依赖spring-boot-starter-data-redis #### 当前版本 快照版:**1.6.0-SNAPSHOT** (已提交中央仓库) 稳定版:**1.5.2** #### 更新说明 ##### 1.6.0-SNAPSHOT 更新如下 1. 添加 **TransactionHandler** ,添加事务支持 2. 添加 **Stream** 相关API 3. 添加 **ZsetHandler**中 **popMax** 与 **popMin** 相关API 4. 支持 **Jedis 3.X** 5. 使用更规范的项目名,变更项目名为:**redis-spring-boot-starter** 6. 稳定版将与spring-boot稳定版同步更新 #### 安装教程 ``` mvn clean install ``` #### 文档地址 https://apidoc.gitee.com/xsxgit/redis-spring-boot-starter #### 使用说明 ##### 快照版配置 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 ``` ##### 一、准备工作 1. 添加依赖: ``` wiki.xsx redis-spring-boot-starter X.X.X ``` 2. 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(); }); ``` #### 特别说明 1. @since 为redis最低版本所支持的方法,例如@since redis 1.0.0表示1.0.0的redis版本即可使用该方法 2. XXXAsObj为对象类型序列化相关方法,XXX为字符串类型序列化相关方法 3. 默认使用 **JsonRedisSerializer**(自定义的json序列化器) 作为对象序列化工具 3. 分布式锁需依赖 **redisson** ,如需使用,请添加对应依赖 redisson依赖: ``` org.redisson redisson-spring-data-21 RELEASE ```