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

OSCHINA-MIRROR/shujianhui-SpringJPARedis

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

Спрингбут: открытое корпоративное решение JPA REDIS для бесшовной интеграции и детальной настройки кэша.

Введение

Этот проект развивается с 2019 года, внутренняя версия уже используется в производственной среде крупных проектов, прошла строгие испытания, количество ошибок невелико, не более 1 часа для расширения кеша. Существующие методы кеширования имеют демонстрационные версии, можно следить за ними постоянно, будет постоянное обновление, также надеемся на активное участие в совместной разработке.

Если у вас есть хорошие предложения, вы можете связаться со мной, я обязательно приму их к сведению.

Первый вариант: только кеш Redis, без сохранения базы данных MySQL, требуется аннотация @EnableRedisRepositories.

  • Преимущества: очень простая конфигурация, очень удобно, мощная функциональность, поддержка кеширования и индексации.
  • Недостатки: может работать только с Redis, не подходит для общего сценария разработки, подходит только для сценариев, где Redis является единственным хранилищем данных.

Второй вариант: метод добавления аннотаций, требуется аннотация @EnableCaching.

  • Преимущества: относительно простая настройка, относительно удобная.
  • Недостатки: хотя используется Redis и MySQL, но при разработке легко допустить ошибки, слишком много элементов удаляются из кеша, слишком много кешированных элементов; работа по добавлению кеша несколько велика.

Третий вариант (рекомендуется):

  • Преимущества: используется Redis и MySQL, сверхпростая конфигурация, максимально удобно, мощная настраиваемая функциональность, гибкая в использовании, детальная настройка кеша, минимальное количество элементов кеша, минимальный диапазон удаления кеша, динамическое изменение всех данных в кеше, поддерживается как первый уровень кеша, так и второй уровень кеша, а также транзакции.
  • Недостатки: в настоящее время поддерживает большинство сценариев, конечно, это зависит от человека, можно сделать его более всеобъемлющим, также можно рассмотреть параллельную производительность, способ сортировки, поддержку индексации и другие сценарии.

QQ общение

  • Автор: 972153513

Версия примечания

  • В настоящее время выпущена версия v2.0.RELEASE, которая потрясла мир, для режима зависимости родитель-потомок проекта, пожалуйста, перейдите в проект [https://gitee.com/shujianhui/new-jpa-redis-parent].
  • Исправлены все ошибки v1.0.RELEASE.
  • Реконструкция и оптимизация, выполнение пакетной обработки с использованием технологии конвейера, повышение скорости работы ракеты.
  • Крупные старые проекты добавляют кеш максимум за 1 час, идеально завершают работу.
  • Поддержка асинхронного режима Netty (высокопроизводительный Java-клиент Redis, используемый для обеспечения безопасности потоков, асинхронности и реактивного использования. Поддерживает кластеры, Sentinel, конвейеры и кодировщики. https://lettuce.io).
  • Поддержка режима повторной попытки при возникновении исключения 5 раз.

Обязательные условия для запуска:

  • JDK 8 181 +
  • Maven 3.3.9 +
  • Jedis 2.90
  • MySql 5.7 + или MariaDB 10.2 +
  • SpringBoot 1.5.7.RELEASE + (можно обновить версию самостоятельно, следующая версия обновлена до SpringBoot 2.x)

Реализованные функции:

Общие функции

  • Управление транзакциями Spring JPA и jedis для обеспечения атомарности транзакций и т.д.
  • Поддержка загрузки кеша и сортировки запросов.
  • Поддержка конфигурации одноузлового режима Redis.
  • Поддержка конфигурации режима часового Redis.
  • Поддержка конфигурации кластера Redis.
  • Поддержка конфигурации фрагментации Redis.
  • Поддержка пула соединений HikariCP.

Кэш первого уровня (StringRedisTemplate):

  • Контроллер интерфейса слой кэширования, нет необходимости учитывать проблемы сортировки, возможно, слишком много кэшированных элементов, верхний слой данных изменяется относительно сильно, особенно для разбиения на страницы и разнообразия форм представления данных, но хорошо то, что интерфейсов не так много (полностью реализовано).
  • Поддерживает ProtoStuffRedisSerializer самый быстрый способ (полностью реализован).
  • Время кэширования по умолчанию составляет 4 дня, невозможно динамически изменять данные кэша (полностью реализовано).

Кэш второго уровня (RedisTemplate<String, ?>):

  • JPA общая поддержка увеличения, удаления, изменения и запроса без проблем с интеграцией кеша (BaseJpaRedisRepositoryImpl) (полностью реализована).
  • JPA Поддержка сложного SQL без проблем с интеграцией кэша (BaseQueryDslJpaRepository) (полностью реализована).
  • JPA FindBy режим поддержки бесшовной интеграции кеша (SecurecyPostProcessor) (полностью реализован).
  • Режим аннотации JPA @Query поддерживает бесшовную интеграцию кеша (полностью реализован).
  • Поддерживает ProtoStuffRedisSerializer самый быстрый способ (полностью реализован).
  • Поддерживает режим KryoRedisSerializer (полностью реализован).
  • Поддерживает FastJsonRedisSerializer режим (полностью реализован).
  • Поддерживает Jackson2JsonRedisSerializer режим (полностью реализован).
  • Поддерживает StringRedisSerializer режим (полностью реализован).
  • Поддерживает способ интеграции транзакций JPA и Redis (полностью реализован).
  • Поддерживает детальный кэш, количество кэшированных элементов минимально, диапазон удаления кэша минимален (полностью реализован).
  • Поддерживает динамические изменения всех данных в кэше (полностью реализован).
  • Поддерживает высокоскоростной режим пакетной обработки конвейера (полностью реализован).
  • Поддерживает сверхскоростной режим конвейерных транзакций (полностью реализован).
  • Поддерживает сверхскоростной оптимистичный режим блокировки конвейерных транзакций (полностью реализован).
  • Частично поддерживает высокоскоростной асинхронный режим пакетной обработки Netty (частично реализован).
  • Частичная поддержка высокоскоростного асинхронного конвейерного режима транзакций Netty (частично реализована).
  • Частичная поддержка сверхскоростного оптимистичного режима блокировки асинхронных конвейерных транзакций Netty (частично реализована).
  • Поддерживает режим повторной попытки исключения 5 раз (полностью реализован).

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

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

Введение

СпрингБут: бесшовная интеграция JPA и REDIS для оптимизации кэширования на уровне предприятия с открытым исходным кодом. Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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