redis-spring-boot-starter
Интеграция 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
<dependency>
<groupId>wiki.xsx</groupId>
<artifactId>redis-spring-boot-starter</artifactId>
<version>X.X.X</version>
</dependency>
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) RedisUtil.getScriptHandler(dbIndex, mapper) |
PubSubHandler | Публикация и подписка (Pubsub) | RedisUtil.getPubSubHandler() RedisUtil.getPubSubHandler(dbIndex) |
StreamHandler | Поток (Stream) | RedisUtil.getStreamHandler() 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) |
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 означает, что метод можно использовать в версии Redis 1.0.0 и выше.
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 (см. подробную конфигурацию):
В формате YAML:
```yaml
# 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}"
В формате свойств:
# 默认配置
# 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}"
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )