Spring Data Redis

一:搭建項目環境

1:創建項目,導入Jar包

https://download.csdn.net/download/qq_36297434/11893546

2:整合配置

2.1:redis.properties

redis.pool.maxTotal=20
redis.pool.maxIdle=10
redis.pool.minIdle=5

redis.conn.hostName=localhost
redis.conn.port=6379

2.2:applicationContext.xml

<?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"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	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
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx.xsd">
	<!-- 配置讀取properties文件的工具類 -->
	<context:property-placeholder location="classpath:redis.properties"/>
	
	<!-- Jedis連接池 -->
	<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property name="maxTotal" value="${redis.pool.maxTotal}"/>
		<property name="maxIdle" value="${redis.pool.maxIdle}"/>
		<property name="minIdle" value="${redis.pool.minIdle}"/>
	</bean>
	<!-- Jedis的連接工廠 -->
	<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
		<property name="hostName" value="${redis.conn.hostName}"/>
		<property name="port" value="${redis.conn.port}"/>
		<property name="poolConfig" ref="poolConfig"/>
	</bean>
	<!-- Redis模板對象 -->
	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
		<property name="connectionFactory" ref="jedisConnectionFactory"/>
		<!-- 序列化器:能夠把我們儲存的key與value做序列化處理的對象 -->
		<!-- 配置默認的序列化器 -->
		<!-- keySerializer、valueSerializer 配置Redis中的String類型key與value的序列化器 -->
		<!-- HashKeySerializer、HashValueSerializer 配置Redis中的Hash類型key與value的序列化器 -->
		<property name="keySerializer">
			<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
		</property>
		<property name="valueSerializer">
			<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
		</property>
	</bean>
</beans>

3:測試項目環境

/**
* Redis 測試
* @author 李偉康
*
*/
@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 Redis存儲實體對象

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:測試代碼

/**
* 添加 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);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章