Spring Data Redis

Posted liulebin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data Redis相关的知识,希望对你有一定的参考价值。

Spring Data Redis

1.简介:

  Spring Data Redis, part of the larger Spring Data family, provides easy configuration and access to Redis from Spring applications. It offers both low-level and high-level abstractions for interacting with the store, freeing the user from infrastructural concerns.

2.Redis安装

  https://www.cnblogs.com/liulebin/p/10860192.html

3.搭建环境

  3.1整合配置

    配置文件

      

<?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>

4.整合测试环境

  3.1添加Junit包

  3.2关闭 linux 防火墙,或者在防火墙中开启 6379 端口

  3.3测试代码

/**
*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);
}
/**
* 存储User
*/
@Test
public void test3(){
User user = new User();
user.setId(1);
user.setUsername("张三");
user.setPassword("zhangsan");
redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
redisTemplate.opsForValue().set("user", user);;
}

/**
* 获取User
*/
@Test
public void test4(){
redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
User user = (User) redisTemplate.opsForValue().get("user");
System.out.println(user.toString());
}

/**
* 存储user Json格式
*/
@Test
public void test5(){
User user = new User();
user.setId(2);
user.setUsername("李四");
user.setPassword("lisi");
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(User.class));
redisTemplate.opsForValue().set("user2", user);

}

/**
* 获取user Json格式
*/
@Test
public void test6(){
redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(User.class));
User user = (User) redisTemplate.opsForValue().get("user2");
System.out.println(user.toString());
}

}



}

 


CSDN:

  spring data redis:

https://blog.csdn.net/weixin_44982675/article/details/90199585

以上是关于Spring Data Redis的主要内容,如果未能解决你的问题,请参考以下文章

用spring-data-redis实现类似twitter的网站(转)

使用Spring Data Redis操作Redis(集群版)

Spring之Redis访问(Spring-data-redis)

如何在过期事件中访问spring data redis store对象?

原创Spring Data Redis <=2.0.3反序列化漏洞

spring-data-redis读写分离