1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/geek_qi-ace-cache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 9.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 17.03.2025 01:16 3697e43

ace-cache

Основанный на Spring Boot аннотациях кэширования с встроенным легковесным менеджером кэша.

@Cache — это более легковесное кэширование по сравнению с Spring Cache, которое поддерживает установку времени жизни для каждого отдельного кэша и удаление кэша по префиксу ключа.

Использует fastjson для сериализации и десериализации данных, хранящихся в виде JSON-строк в кэше.

ace-cache можно быстро использовать в повседневной работе с Spring Boot приложениями.

Инструкция по использованию

Maven зависимости

<dependency>
    <groupId>com.github.wxiaoqi</groupId>
    <artifactId>ace-cache</artifactId>
    <version>1.0.0</version>
</dependency>

Настройка кэша

  1. Конфигурация источника данных Redis, файл application.yml
# Для версий 1.0.0 рекомендовано использование конфигурации Spring Redis
spring:
  redis:
    database: 0
    host: localhost
    timeout: 2000
    sysName: ace # По умолчанию используется префикс ключей
    enable: true # Включение/выключение ace-cache
    userkey: # Уникальный идентификатор пользователя, хранящийся в cookie или request header
    lettuce:
      pool:
        max-active: 300
        min-idle: 100
        max-wait: 1000

# НЕ РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ ЭТОТ КОНФИГУРАЦИОННЫЙ ОБЪЕКТ, он используется в версиях ниже 0.0.2
redis:
    pool:
         maxActive: 300
         maxIdle: 100
         maxWait: 1000
    host: 127.0.0.1
    port: 6379
    password:
    timeout: 2000
    # Имя сервиса или приложения
    sysName: ace
    enable: true
    database: 0

Включение кэширования

  1. Активировать AOP сканирование
@EnableAceCache
```## Использование кэша
3. Аннотировать Service @Cache или @CacheClear

# Описание аннотаций
## Настройка кэша: @Cache
Параметр аннотации | Тип | Описание
------------- |------------- | -----
key          | String       | Выражение для вычисления ключа кэша
expires      | Integer      | Время жизни кэша, минуты
desc         | String       | Описание кэша
scope        | Enum         | Область действия кэша (сессия или приложение)
parser       | Class<? extends ICacheResultParser> | Класс для обработки результата кэша
generator    | Class<? extends IKeyGenerator> | Класс для генерации ключа кэша
result       | Class<?>[]   | Класс для типа результата кэша, по умолчанию берется первый тип

## Очистка кэша: @CacheClear
Параметр аннотации | Тип | Описание
------------- |------------- | -----
pre           | String       | Префикс ключа для очистки кэша
key           | String       | Ключ для очистки кэша
keys          | String[]     | Массив ключей для очистки кэша
generator     | Class<? extends IKeyGenerator> | Класс для генерации ключа кэша

## Глобальный распределенный замок: @CacheGlobalLock
Параметры аннотации | Тип | Описание
------------- | ------------- | -------------
key          | String        | Выражение ключа для распределенного замка
retry       | Integer       | Интервал времени повторной попытки получения замка, в миллисекундах
waitLock    | boolean       | Ждать глобального замка до тех пор, пока он не будет получен? По умолчанию  нет, если замок не получен, программа не выполняется.
generator   | Class<? extends IKeyGenerator> | Пользовательский сгенерированный класс для ключей кэша## Примеры динамического выражения ключа по умолчанию
Пример выражения | Описание | Пример
------------- | ------------- | -------------
@Cache(key="user:{1}")<br>public User getUserByAccount(String account) | {1} представляет собой получение значения первого параметра<br>{2} представляет собой получение значения второго параметра<br>... и так далее | Если account = ace, то key = user:ace
@CacheClear(pre="user{1.account}")<br>User saveOrUpdate(User user)|{1} представляет собой получение значения первого параметра<br>{1.xx} представляет собой получение атрибута xx из первого параметра|Если account=ace, то key = user:ace
# Легковесный менеджер
Адрес доступа: http://localhost:8080/cache
<br>Менеджер позволяет выполнять массовое удаление или очистку кэша по префиксу для кэшей, зарегистрированных в ace-cache, также можно быстро просматривать содержимое кэша, а также продлевать время жизни кэша.
![введите описание изображения здесь](https://images.gitee.com/uploads/images/2020/0913/122505_93749824_547642.png "WX20200913-122442@2x.png")
# Пример
1. Раскрытие примеров кода в src/main/test
> CacheTest является основным запускающим классом
>> пакет service содержит примеры вызова кэширования, включая использование пользовательских выражений и анализа результатов, а также использования аннотаций

# 22 мая 2017 года
Первый выход перед вами, прошу указаний!

# 23 мая 2017 года Поддержка шаблона Spring MVC## Конфигурационные файлы
### application.properties
```properties
redis.pool.maxActive = 300
redis.pool.maxIdle = 100
redis.pool.maxWait = 1000
redis.host = 127.0.0.1
redis.port = 6379
redis.password = 
redis.timeout = 2000
redis.database = 0
redis.sysName = ace
redis.enable = true
```### applicationContext.xml
```xml
<!-- beans header -->
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"	
<!-- Включение конфигурации AOP -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<context:component-scan base-package="com.ace.cache"/>
<context:annotation-config/>

Maven зависимости

<properties>
    <!-- Spring -->
    <spring.version>4.1.3.RELEASE</spring.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aspects</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
</dependencies>

Способ использования

Способ использования аналогичен способу использования Spring Boot — аннотациями непосредственно в методах.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/geek_qi-ace-cache.git
git@api.gitlife.ru:oschina-mirror/geek_qi-ace-cache.git
oschina-mirror
geek_qi-ace-cache
geek_qi-ace-cache
master