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

OSCHINA-MIRROR/neixunbao-emr3cache

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

emr3Cache — двухуровневая Java-фреймворк для кэширования на основе Ehcache, memcache и Redis

======================Структура двухуровневого кэша emr3Cache======================

  1. L1: внутренний кэш процесса (ehcache), также можно использовать Memcached или Redis в качестве первого уровня (большинство проектов используют этот подход).
  2. L2: централизованный кэш, поддерживает различные централизованные серверы кэширования, такие как Redis и Memcached (Mem не поддерживает уведомление первого уровня об удалении второго уровня, эта проблема не возникает при использовании одного сервера).
  3. Поскольку большое количество операций чтения из кэша может привести к тому, что пропускная способность сети L2 станет узким местом всей системы, цель L1 — уменьшить количество обращений к L2.

L1 не уведомляет L2 об истечении срока действия, а L2 уведомляет другие L1 о необходимости удаления при ручном удалении.

==========Способ хранения ключей========= Вот два метода в качестве примера:

  1. set(region, key, value).
  2. set(key, value).
  • Для совместного использования несколькими небольшими проектами на одном сервере memcache или redis перед ключом добавляется префикс namespace.
  • region — это модуль, key — ключ, value — значение.
  • В memcache ключ имеет вид «namespace:region:key», если регион не установлен, то ключ будет «namespace:key».
  • В Redis, если регион не пустой, данные хранятся в HASH («namespace:region», «key»), если регион пустой, то данные хранятся в String, ключ — «namespace:key».

====================Метод чтения данных========================

  1. Порядок чтения: L1 → L2 → БД.
  2. Обновление данных:
    1. Чтение последних данных из базы данных, обновление L1_1 → L2, широковещательное (по расписанию) удаление определённой информации кэша.
  3. Можно указать уровень чтения L1 или L2.
  4. Можно указать уровень установки значения L1 ИЛИ L2.
  5. Срок действия ehcache настраивается в XML, поэтому предоставленный метод реализации настройки времени будет игнорироваться, настройка будет недействительной. По умолчанию, если время не установлено, срок действия составляет 30 минут, его можно изменить в файле конфигурации.

========================Файл конфигурации======================== Файл конфигурации находится в каталоге src/main/resources и содержит три файла:

  • ehcache.xml — файл конфигурации Ehcache, для настройки обратитесь к документации Ehcache.

  • java2cache.properties — основной файл конфигурации, можно настроить информацию о подключении к серверу Redis и пулу соединений, информацию о соединении с сервером memcache. В процессе фактического использования эти два файла необходимо скопировать в путь класса приложения, например, в каталог WEB-INF/classes.

=====================Использование Maven для сборки================= $ mvn install

Пример кода

test/TestCacheSub.java

Отдельная подписка и публикация теста: TjedisPub.java TjedisSub.java

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

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

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

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

Участники

все

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

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