предисловие Интегрированная в Spring среда Redis может быть встроена во встроенную среду ssm, что удобно (лениво), удобно (людям), быстро (специализировано), быстро (полезно), первая рекомендация!
@[toc]
1. Приготовьтесь зависеть от пакета Jar
<!-- ================ spring 整合 Redis================== -->
<!-- 1、java连接Redis的jar包,也就是使用jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.4.2</version>
</dependency>
<!-- 2、spring整合Redis的jar包 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.4.2.RELEASE</version>
</dependency>
1.1. Обзор джедаев
Да, выше использовался пакет Jedis jar Вот краткое введение в Jedis.
Доступ Java-клиента к Redis имеет
Jedis
,Redisson
,Jredis
,JDBC-Redis
д., среди которых официальная рекомендация использоватьJedisи Редиссон.Обычно используемые джедаи. Работа Jedis в основном такая же, как и при использовании нативной команды Redis. Другими словами, Jedis фактически является Java-реализацией нативной команды. Преимущество в том, что ее очень удобно использовать, и нет необходимости запоминать другие API. Недостатком является то, что он немного низкоуровневый. Некоторый контент по-прежнему необходимо упаковывать вручную. Для новичков Jedis позволяет быстрее начать работу и лучше адаптируется.
2. Конфигурация в Spring-redis.xml
Запустите следующую конфигурацию в spring xml:
2.1. Настройка информации о пуле соединений
<!-- 1、配置连接池信息 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大连接数-->
<property name="maxTotal" value="50"></property>
<property name="maxIdle" value="5"></property>
<!-- 这里只是Spring整合Redis测试,配两个做个样子就得了-->
</bean>
Конечно, для настройки также есть информация о конфигурации по умолчанию в redis.clients.jedis.JedisPoolConfig! В конце концов, демон это или фея, я просто говорю это сам.
2.2, настроить информацию о пуле соединений
<!--2、spring整合Jedis(Redis) 也就是配置连接工厂JedisConnectionFactory-->
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<!--需要自定义(指定)一些工厂属性配置信息-->
<!-- 指定服务器地址-->
<property name="hostName" value="192.168.113.231"></property>
<!-- 指定服务端口号-->
<property name="port" value="6379"></property>
<!-- 指定密码(Redis3之前可以不指定,之后都要)-->
<property name="password" value="yichun"></property>
<!-- 自定义连接池配置:再把第一步配置好的连接池信息通过属性注入进来 如果不自定义会采用默认的连接池配置,工厂中有属性new JedisPoolConfig-->
<property name="poolConfig" ref="jedisPoolConfig"></property>
</bean>
Введите информацию о пуле соединений, настроенную на первом шаге, через свойства. Если она не настроена, будет использоваться конфигурация пула соединений по умолчанию. В фабрике есть свойства.new JedisPoolConfig
,следующее:
2.3, настройте шаблон RedisTemplate
Теперь, когда шаблон RedisTemplate настроен, давайте познакомимся с шаблоном RedisTemplate.
Обзор RedisTemplate
Spring-data-redis
при условииRedisTemplate
реализоватьRedis
Операция доступа, которая инкапсулирует логику управления пулом соединений Redis, бизнес-коду не нужно заботиться о получении и освобождении логики соединения;spring redis
также поддерживаетсяJedis、Jredis、rjc
клиентская операция; вRedisTemplate
В методе предусмотрено использование нескольких часто используемых методов интерфейса.Методы в нем хранят строки (String), хэши (Map), списки (list), наборы (sets) и отсортированные наборы (sortedsets), которые оперируют Redis соответственно , и другие типы данных.
RedisTemplate может значительно упростить доступ к данным Redis, позволяя нам сохранять различные типы ключей и значений, не ограничиваясь массивами байтов.
Настройте шаблон RedisTemplate
<!-- 3、配置RedisTemplate模板 把第二步配置好的连接工厂JedisConnectionFactory通过属性注入到RedisTemplate模板中-->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisConnectionFactory"></property>
<!--如下配置是为了之后的key和value的序列化操作,暂时不配制也是OK的-->
<property name="keySerializer">
<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
</property>
<property name="valueSerializer">
<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
</property>
</bean>
В частности, вы можете ввести исходный код для просмотра самостоятельно.Вот простой анализ самого себя:
3. Написание сервисного кода
Сначала напишите интерфейс
package com.gx.service;
public interface RedisUserService {
public String getString(String key);
}
Затем напишите фактический код службы
package com.gx.service.Impl;
import com.gx.service.RedisUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
@Service
public class RedisUserServiceImpl implements RedisUserService {
/**
* 主要业务代码是通过某个key得到值:
* Redis中 不存在:进数据库查询
* 存在:进Redis中查询
*/
@Autowired
RedisTemplate<String,String> redisTemplate;
@Override
public String getString(String key) {
ValueOperations<String,String> string=redisTemplate.opsForValue();//opsForValue是存储String数据的,opsForValue中提供了很多操作Redis的String类型的数据!!!
// redisTemplate.opsForValue().set("cs1","cs数据1",1, TimeUnit.HOURS); //设置存储数据并设置过期时间为1小时
if (redisTemplate.hasKey(key)) {
System.out.println("在Redis中取出并返回");
return string.get(key);
}else {
String result="RedisTemplate的Value值";
string.set(key,result);
System.out.println("在数据库中取出并返回");
return result;
}
}
}
4. Написание тестового кода RedisTemplateTest
package com.gx.test;
import com.gx.service.RedisUserService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class RedisTemplateTest {
public static void main(String[] args) {
//这里之所以只加载applicationContext.xml是因为我把spring-Redis.xml的配置直接放进了applicationContext.xml,不要问我为什么,因为我骚啊。
ClassPathXmlApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
RedisUserService userService=ctx.getBean(RedisUserService.class);
String key="cs2";
String result=userService.getString(key); //这里是调用我们编写userService中的getString(key)方法
System.out.println(result);
}
}
==Не забудьте перед запуском открыть порты и брандмауэры, иначе в случае сбоя соединения будет сообщено об ошибке. ! !==
запустить в первый раз
Хорошо, здесь Spring интегрирует Redis, и начальная интеграция завершена!
Если эта статья поможет вам немного, то, пожалуйста, поставьте лайк, ваше одобрение — моя самая большая мотивация, спасибо~
Наконец, если есть какие-либо недостатки или неточности, добро пожаловать на исправления и критику, большое спасибо! Если у вас есть какие-либо вопросы, пожалуйста, оставьте сообщение и ответьте как можно скорее!
Приглашаю всех обратить внимание на мою официальную учетную запись, там есть некоторые учебные материалы по Java и большая волна электронных книг по Java, таких как всесторонняя виртуальная машина Java г-на Чжоу Чжимина, идеи программирования Java, тома основных технологий, большой разговор о дизайне. паттерны, борьба с параллельным программированием на Java... .. Это все библия Java, не говоря уже о том, чтобы садиться в машину Tomcat, поехали! Самое главное — вместе обсуждать технологии, тосковать по технологиям, заниматься технологиями, а когда они согласованы, это друг по горшку…