Spring整合Redis
Posted halulu.me
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring整合Redis相关的知识,希望对你有一定的参考价值。
Spring整合reids
解决当String类型的值是对象时候无法储存的问题
maven
<!-- ================ spring 整合 Redis================== -->
<!-- 1、java连接Redis的jar包,也就是使用jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.3</version>
</dependency>
<!-- 2、spring整合Redis的jar包,注意版本的对应关系 -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
<!--jackson-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.9</version>
</dependency>
<!-- 日志记录 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.21</version>
</dependency>
需加入slf4j日志包,否则会报错
reids的端口号是6379
void set(K key, V value, long timeout, TimeUnit unit)
long timeout 指存活时间
TimeUnit unit 指时间单位
使用步骤
1、创建redis的配置文件
2、创建redis的连接工厂
3、创建redisTemolate对象
3.1 指定连接工厂
3.2 键的序列化策略
3.3 值得序列策略
applicationContext.xml
<!-- 1. redis独立的配置对象-->
<bean class="org.springframework.data.redis.connection.RedisStandaloneConfiguration" id="standaloneConfiguration">
<!-- 主机名 -->
<property name="hostName" value="localhost"/>
<!-- 端口号 -->
<property name="port" value="6379"/>
</bean>
<!-- 2. 创建jedis连接工厂,通过构造器注入上面的对象 -->
<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
id="connectionFactory">
<constructor-arg ref="standaloneConfiguration"/>
</bean>
<!-- 3. 创建redisTemplate对象 -->
<bean class="org.springframework.data.redis.core.RedisTemplate" id="redisTemplate">
<!-- 指定连接工厂 -->
<property name="connectionFactory" ref="connectionFactory"/>
<!-- 键:String的序列化策略,对字符串类型 -->
<property name="keySerializer">
<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
</property>
<!-- 值:采用的是JSON的序列化策略 -->
<property name="valueSerializer">
<bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer"/>
</property>
</bean>
测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class AppTest {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void test() throws InterruptedException {
ValueOperations operations = redisTemplate.opsForValue();
operations.set("username1","狗娃",10, TimeUnit.SECONDS);
Thread.sleep(10000);
String username = (String) operations.get("username1");
System.out.println(username);
}
@Test
public void test2(){
ValueOperations ops = redisTemplate.opsForValue();
ops.set("user",new User("小一","20"));
User user = (User) ops.get("user");
System.out.println(user);
}
}
以上是关于Spring整合Redis的主要内容,如果未能解决你的问题,请参考以下文章