(1) Pom.xml представляет пакет JAR, следующим образом:
<dependency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-data-redis </artifactid> </deperency>
(2) Измените класс запуска проекта, добавьте аннотацию @enablecaching и включите функцию кэширования следующим образом:
Пакет Springboot; импорт org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; импорт org.springframework.cache.annotation.enableCaching; импорт org.springframe.cache.annotation.enableCaching; org.springframework.scheduling.annotation.enablescheduling;@SpringbootApplication@enableseduling@enablecachingpublic class springbootapplication {public static void main (string [] args) {springApplication.run (springbootapplication.class, args); }}(3) Настройте информацию о подключении Redis в Application.properties, следующим образом:
# Индекс базы данных Redis (по умолчанию равен 0) spring.redis.database = 0# redis Server Address Spring.redis.host = 172.31.19.222# Redis Server Connection Port. Redis.port = 6379# Redis Server Connection Passwor Spring.redis.pool.max-Active = 8# Максимальное время ожидания блокировки для пула соединений (использование отрицательных значений означает отсутствие ограничения) Spring.redis.pool.max-wait = -1# Максимальное соединение в пуле в соединении.
(4) Создайте новый класс конфигурации Redis Cache Redisconfig, следующим образом:
пакет Springboot.config; импорт org.springframework.beans.factory.annotation.value; import org.springframework.cache.cachemanager; импорт org.springframework.cache.annotation.cachingconfigurersupport; import org.sprame.cache.cache.annotation. org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration; import org.springframework.data.redis.cache.rediscachemanager; импорт org.springframework.data.redis.redection.redectionectionfactory; org.springframework.data.redis.core.redistemplate; импорт org.springframework.data.redis.core.stringredistemplate; импорт org.springframework.data.redis.serializer.jackson2jsonrediserizer; импорт. com.fasterxml.jackson.annotation.propertyaccsors; import com.fasterxml.jackson.databind.objectmapper;/** * redis cache configuration class * @author szekinwin * */@configuration@enablecachingpublic class redisconfig extends cachingconfigurersupport { @Value ("$ {spring.redis.host}") частный строковый хост; @Value ("$ {Spring.redis.port}") private int port; @Value ("$ {spring.redis.timeout}") private int timeout; // Пользовательская стратегия генерации ключей кэша // @bean // public keygenerator keygenerator () {// return new Keygenerator () {// @overde // public object Generate (цель объекта, java.lang.reflect.method метод, объект ... params) {// stringbuffer sb = new Stringbuffer (); sb.append (target.getClass (). getName ()); // sb.append (method.getName ()); // for (Object obj: params) {// sb.append (obj.toString ()); //} // return sb.toString (); // //} ///////////////////////////////// Кэш -менеджер @bean public cachemanager cachemanager (@suppresswarnings ("rawtypes") Redistemplate Redistemplate) {rediscachemanager cachemanager = new Rediscachemanager (Redistemplementate); // Установить время истечения срока действия кэша cachemanager.setDefaultexpiration (10000); вернуть Cachemanager; } @Bean public redistemplate <string, string> redistemplate (redisconnectionFactory Factory) {stringRedistemplate template = new StringRedistemplate (Factory); SetSerializer (шаблон); // Установить шаблон инструмента сериализации. AfterProperTiesset (); возвратный шаблон; } private void setSerializer (шаблон stringredistemplate) {@suppresswarnings ({"rawtypes", "unchecked"}) jackson2jsonredisserializer jackson2jsonrediserializer = new jackson2jsonrediserializer (объект. Class); ObjectMapper om = new ObjectMapper (); OM.SetVissibility (PropertyAccessor.All, jsonAutoDetect.visability.ANY); om.enabledefaulttyping (objectmapper.defaulttyping.non_final); jackson2jsonredisserializer.setObjectMapper (OM); Template.SetValueSerializer (Jackson2JsonRedisserializer); }}(5) Создайте новый Usermapper, следующим образом:
Пакет Springboot.dao; импорт org.apache.ibatis.annotations.delete; import org.apache.ibatis.annotations.insert; импорт org.apache.ibatis.annotations.mapper; import org.apache.ibatis.annotations.param; импорт org.apache.annotations.select; org.apache.ibatis.annotations.update; import org.springframework.cache.annotation.cacheconfig; import org.springframework.cache.annotation.cacheevict; импорт org.springframework.cache.annotation.cacheput; importframework.cacheabletas.cacheabletas.cacheabletas.cacheabletoration.Cache.Cache.Cache.Cache.Cache.Cache.Cache.Cache.Cache.cache.cache.cache.cache.cache.annotation.cacheput; importmable.cache.cache.cache.annotation.cachePut; springboot.domain.user;@mapper@cacheconfig (cachenames = "users") public interface usermapper {@insert ("Вставка в пользовательский (имя, возраст) значения (#{name},#{age})") int adduser (@param ("name") Стросительное имя,@param ("Age") строковой возраст); @Select ("select * из пользователя, где id =#{id}") @cachable (key = "#p0") пользователь findbyid (@param ("id") String id); @Cacheput (key = "#p0") @update ("Обновление набор пользователя name =#{name} где id =#{id}") void updatebyid (@param ("id") идентификатор строки,@param ("name") name); // Если указано как true, все кэши будут очищены сразу после того, как метод называется @cacheevict (key = "#p0", allentries = true) @delete ("Удалить из пользователя, где id =#{id}") void deletebyid (@param ("id")@Cachable Cachs Результат запроса Redis, (key = "#P0") Указывает первый параметр, передаваемый как ключ из Redis.
@Cacheput, укажите ключ, синхронизируйте обновленные результаты с Redis
@Cacheevict, указать ключ, удалить данные кэша, Allentries = true, кэш будет очищен сразу после вызова метода
(6) Служного уровня и уровня контроллера интегрированы, как предыдущая статья. Запустите сервер Redis. Вы можете обратиться к предыдущему блогу для установки и запуска сервера Redis. Адрес следующего:
http://www.cnblogs.com/gdpuzxs/p/6623171.html
(7) Настройте информацию журнала следующим образом:
## log4j configuration log4j.rootcategory = Debug, STDOUT ## Консоль log4j.appender.stdout = org.apache.log4j.consoleappenderlog4j.appender.stdout.layout = org.apache.log4j.patternlayoutlog4j.appender.stdout.layout.conversionPattern = %d {yyyy-mm-dd hh: mM: ss, ss, ss, ss, ss, ss, ss, ss, ss %c {1}: %l - %m %n(8) Проверьте кэш Redis
Во -первых, мы вставляем кусок данных в таблицу пользователя, и база данных отображается следующим образом:
Теперь давайте запрашим данные с помощью идентификатора = 24 в таблице пользователя, а вывод информации из консоли Гуанзи выглядит следующим образом:
Через консольную информацию о выводе мы можем знать, что на этот раз был выполнен запрос базы данных и результаты запроса кэша Redis были включены. Далее мы снова запрашиваем данные с id = 24 в таблице пользователя и наблюдаем за консоли следующим образом:
Через консольную информацию о выводе мы можем знать, что на этот раз мы не выполнили не запрос базы данных, а вместо этого запросили его из кэша Redis и возвращаем результат запроса. Мы проверяем информацию в Redis, следующим образом:
Метод метода FindoUser использует аннотацию @Cachable (key = "#P0"), что означает, что ID используется в качестве значения ключа в Redis. Когда мы обновляем данные, мы должны использовать @cacheput (key = "#P0") для обновления кэшированных данных, в противном случае будут запрошены грязные данные.
Суммировать
Выше приведено метод реализации Springboot с использованием Redis Cache, представленный вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя!