38 Star 260 Fork 79

xsx / redis-spring-boot-starter

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
README.md 6.81 KB
Copy Edit Raw Blame History
xsx authored 2022-03-11 23:08 . 兼容高版本springboot

redis-spring-boot-starter

star

介绍

整合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

使用说明

一、准备工作
  1. 添加依赖:
<dependency>
    <groupId>wiki.xsx</groupId>
    <artifactId>redis-spring-boot-starter</artifactId>
    <version>X.X.X</version>
</dependency>
  1. 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序列化器) 作为对象序列化工具
  4. 分布式锁需依赖 redisson ,如需使用,请添加对应依赖

:如只使用分布式锁,则只需引入依赖即可;如需使用redisson客户端,请先排除Lettuce客户端,然后可参照以下配置

redisson依赖:

<dependency>
     <groupId>org.redisson</groupId>
     <artifactId>redisson-spring-data-21</artifactId>
     <version>X.X.X</version>
</dependency>

redisson配置参考(点击查看请详配置)

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}"
Java
1
https://gitee.com/xsxgit/redis-spring-boot-starter.git
git@gitee.com:xsxgit/redis-spring-boot-starter.git
xsxgit
redis-spring-boot-starter
redis-spring-boot-starter
master

Search