一、 Spring Data Redis 简介
二、 Redis 安装
三、 搭建整合环境
1 创建项目
2 整合配置
redis.pool.maxtTotal=20
redis.pool.maxIdle=10
redis.pool.minIdle=5
redis.hostname=192.168.70.129
redis.port=6379
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 配置读取properties文件的工具类 -->
<context:property-placeholder location="classpath:redis.properties"/>
<!-- Jedis连接池 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.pool.maxtTotal}"/>
<property name="maxIdle" value="${redis.pool.maxtIdle}"/>
<property name="minIdle" value="${redis.pool.minIdle}"/>
</bean>
<!-- Jedis连接工厂:创建Jedis对象的工厂 -->
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<!-- IP地址 -->
<property name="hostName" value="${redis.hostname}"/>
<!-- 端口 -->
<property name="port" value="${redis.port}"/>
<!-- 连接池 -->
<property name="poolConfig" ref="poolConfig"/>
</bean>
<!-- Redis模板对象:是SpringDataRedis提供的用户操作Redis的对象 -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<!-- 默认的序列化器:序列化器就是根据规则将存储的数据中的key与value做字符串的序列化处理 -->
<!-- keySerializer、valueSerializer:对应的是Redis中的String类型 -->
<!-- hashKeySerializer、hashValueSerializer:对应的是Redis中的Hash类型 -->
<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>
</beans>
3 测试整合环境
3.1添加 junit 包
3.2关闭 linux 防火墙,或者在防火墙中开启 6379 端口
3.3测试代码
package com.bjsxt.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Redis测试
* @author Administrator
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class RedisTest {
@Autowired
private RedisTemplate<String, Object> redisTemplate;
/**
* 添加键值对
*/
@Test
public void test1(){
this.redisTemplate.opsForValue().set("key", "test");
}
/**
* 获取redis中的数据
*/
@Test
public void test2(){
String str = (String)this.redisTemplate.opsForValue().get("key");
System.out.println(str);
}
}
四、 Spring Data Redisd 存储实体对象
this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
1 测试代码
/**
* 添加Users
*/
@Test
public void test3(){
Users users = new Users();
users.setAge(30);
users.setId(1);
users.setName("张三");
//更换序列化器
this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
this.redisTemplate.opsForValue().set("users", users);
}
/**
* 获取Users
*
*/
@Test
public void test4(){
//更换序列化器
this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
Users users = (Users)this.redisTemplate.opsForValue().get("users");
System.out.println(users);
}
五、 Spring Data Redis 以 JSON 的格式存储实体对象
1 导入 jackson 包
2 编写测试代码
/**
* 添加Users JSON格式
*/
@Test
public void test5(){
Users users = new Users();
users.setAge(23);
users.setId(2);
users.setName("李四");
this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
this.redisTemplate.opsForValue().set("usersjson", users);
}
/**
* 获取Uesrs JSON格式
*/
@Test
public void test6(){
this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));
Users users = (Users)this.redisTemplate.opsForValue().get("usersjson");
System.out.println(users);
}