В этой статье представлены методы и этапы использования Redis Cache в проекте Springboot. Я поделюсь этим с вами. Детали следующие:
Spring Data Redis инкапсулирует различные операции клиента Redis для упрощения использования.
- Когда Redis используется в качестве базы данных или очереди сообщений, мы обычно используем Redistemplate для работы
- Когда Redis используется в качестве кэша, мы можем использовать его в качестве реализации пружинного кеша, непосредственно используя его посредством аннотации
1. Обзор
Эффективное использование кэша Redis в приложениях может улучшить производительность системы, особенно для операций запросов, что может эффективно снизить давление в базе данных.
Для конкретного кода обратитесь к этому примеру проекта
2. Добавьте ссылку
Присоединяйтесь к Build.Gradle
Compile ('org.springframework.boot: Spring-Boot-Starter-Data-Redis')Springboot автоматически введет пакеты JAR, связанных с Redis. После добавления этой ссылки вам необходимо установить Redis локально и запустить его, в противном случае ошибка будет сообщена, когда программа запускается.
3. Включить кэш через аннотации
Очень просто включить Redis в Springboot. Вам нужно только добавить аннотацию @enablecaching в основной класс приложения, а затем добавить аннотацию @cachable в метод запроса, который должен включить кеш.
@SpringBootApplication@enableCachingPublic Class DemoApplication реализует Commandlinerunner {...Интерфейс запроса:
Общественный интерфейс TestRepository Extends jParePository <test, Integer> {@Cachable (value = "testCache") public test findone (INTEGER ID);}Классы организации должны реализовать сериализуемый интерфейс, в противном случае программа сообщит об ошибке, поскольку объект Java не может быть сериализован на Redis. Redis в Springboot использует DefaultSerializer по умолчанию, который использует собственный метод сериализации JDK.
Всего есть следующие методы сериализации. Для конкретных сценариев использования, пожалуйста, обратитесь к официальной документации.
1. genericjackson2jsonredisserializer
2.
3. Jackson2jsonredisserializer
4. Jacksonjsonredisserializer
5. jdkserializationredisserializer
6. Oxmserializer
7. StringRedisserializer
На данный момент наша программа имеет возможность запросить данные из кэша Redis. Если вы не возражаете против эстетики ключа, хранящегося в Redis, работа закончится.
4. Красивый ключ
После выполнения нашей программы выполните команду ключа * в Redis-Cli, и вы обнаружите, что значение ключа-это куча вещей, аналогичных искаженным коду:
«TestCache: /xac/xed/x00/x05sr/x00/x11java.lang.integer/x12/xe2/xa0/xa4/xf7/x81/x878/x02/x00/x01i/x0 0/x05valueexr/x00/x10java.lang.number/x86/xac/x95/x1d/x0b/x94/xe0/x8b/x02/x00/x00xp/x00/x00/x00/x01 "
Ключевое значение в этом, вероятно, неприемлемо для рабочих и технического персонала Redis. Нам нужно найти способ сделать ключевую ценность лучше, по крайней мере, чтобы люди поняли это.
Причина вышеуказанного значения ключа заключается в том, что класс SimpleKey используется по умолчанию весной для генерации клавиши Redis.
Решение также очень простое. Добавьте конфигурацию кэша и укажите, как Redis генерирует ключи:
@ConfigurationPublic Class CacheConfig Extens CachingConfigurersUpport {@autowired Private Redistemplate Redistemplate; @Bean public cachemanager cachemanager () {redistemplate.setkeyserializer (новый generictoStringserializer <object> (object.class)); Rediscachemanager cachemanager = new Rediscachemanager (Redistemplate); cachemanager.setDefatexpiration (3600); cachemanager.setuseprefix (true); cachemanager.setCachePrefix (new RediscachePrefix () {Private Final Final Redisserializer <string> serializer = new StringRedisserializer (); Private Final String DeLimiter = ":"; Public Byte [] Prefix (String Cachename) {вернуть это. вернуть Cachemanager; }}в
Кода -копия выглядит следующим образом:
redistemplate.setKeySerializer (новый generiCtoStringSerializer <Object> (object.class));
Эта строка кода указывает метод генерации значений ключей в Redis. Метод сериализации GenectoStringserializer будет преобразовать объект Java в строку и хранить его в Redis.
5. Резюме
Включение кеша Redis в Springboot очень просто, вам нужно добавить только несколько аннотаций. В то же время мы можем добавить конфигурацию кэша, чтобы значения ключей, хранящиеся в Redis, имеют хорошую читаемость, а не кучу искаженных данных.
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.