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

OSCHINA-MIRROR/geek_qi-ace-cache

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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 или заголовке запроса
    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

Включение AOP сканирования

  1. Включите сканирование AOP:
@EnableAceCache

Использование кеша

  1. Используйте @Cache или @CacheClear аннотации в сервисе.

Описание аннотаций

Настройка кеша: @Cache

Параметр аннотации Тип Описание
key строка Выражение для динамического вычисления ключа кеша
expires целое число Срок действия кеша в минутах
desc описание Описание кеша
scope перечисление Область действия кеша (сессия или приложение)
parser класс Класс для обработки пользовательских результатов кеша
generator класс Класс для генерации пользовательских ключей кеша
result массив классов Массив типов возвращаемых значений кеша, по умолчанию первый элемент

Очистка кеша: @CacheClear

Параметр аннотации Тип Описание
pre строка Очистить кешированный ключ с определённым префиксом
key строка Удалить определённый ключ кеша
keys массив строк Очистить ключи кеша с определёнными префиксами
generator класс Класс для генерации пользовательских ключей кеша

Глобальная распределённая блокировка: @CacheGlobalLock

Параметр аннотации Тип Описание
key строка Ключ для выражения глобального распределения
retry целое число Интервал времени для повторной попытки блокировки, в миллисекундах
waitLock логическое значение Ожидать ли глобальную блокировку? По умолчанию нет, программа не будет выполняться, если блокировка не получена
generator класс Класс для генерации пользовательских ключей кеша

Динамическое выражение по умолчанию для ключа

Выражение примера Описание Пример
@Cache(key="user:{1}")
public User getUserByAccount(String account)
{1} представляет первый параметр
{2} представляет второй параметр и так далее
Если account = ace, то key = user:ace
@CacheClear(pre="user{1.account}")
User saveOrUpdate(User user)
{1} представляет первый параметр
{1.xx} представляет атрибут xxx первого параметра
Если account=ace, то key = user:ace

Лёгкий интерфейс управления

Адрес доступа: http://localhost:8080/cache

Интерфейс управления позволяет массово или по префиксу очищать зарегистрированный кеш ace-cache, а также просматривать содержимое кеша и продлевать срок его действия.

Изображение

Демо

  1. Примеры кода в src/main/test

CacheTest — основной класс запуска

service — пакет с примерами использования кеша, включая пользовательские выражения и результаты анализа, использование аннотаций

2017-05-22

Впервые встречаюсь с вами, пожалуйста, дайте мне больше советов!

2017-05-23

Совместимость с режимом Spring MVC

Файл конфигурации

application.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
<!-- beans 头部-->
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>

Комментарии ( 0 )

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

Введение

На основе аннотаций Spring Boot реализуется кэширование, которое включает в себя облегчённую страницу управления кэшем. @Cache — это более лёгкий кэш по сравнению с spring cache, он поддерживает настройку времени истечения срока действия для отдельных кэшей и позволяет удалять кэш на основе префикса. Используется сериализация и десериализация Fa... Расширить Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/geek_qi-ace-cache.git
git@gitlife.ru:oschina-mirror/geek_qi-ace-cache.git
oschina-mirror
geek_qi-ace-cache
geek_qi-ace-cache
master