详解SpringBoot是如何整合SpringDataRedis的?

网友投稿 211 2023-01-06

详解SpringBoot是如何整合SpringDataRedis的?

一、创建项目添加依赖

创建SpringBoot项目sVMaq,并添加如下依赖:

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-data-redis

org.springframework.boot

spring-boot-starter-test

test

redis.clients

jedis

2.9.0

二、设置application.properties文件

spring.redis.jedis.pool.max-idle=10

spring.redis.jedis.pool.min-idle=5

spring.redis.pool.max-total=20

spring.redis.hostName=192.168.88.120

spring.redis.port=6379

三、添加Redis的配置类

添加Redis的java配置类,设置相关的信息。

/**

* @program: springboot-redis-demo

* @description: Redis的配置类

* @author: 波波烤鸭

* @create: 2019-05-20 23:40

*/

@Configuration

public class RedisConfig {

/**

* 1.创建JedisPoolConfig对象。在该对象中完成一些链接池配置

* @ConfigurationProperties:会将前缀相同的内容创建一个实体。

*/

@Bean

@ConfigurationProperties(prefix="spring.redis.pool")

public JedisPoolConfig jedisPoolConfig(){

JedisPoolConfig config = new JedisPoolConfig();

/*//最大空闲数

config.setMaxIdle(10);

//最小空闲数

config.setMinIdle(5);

//最大链接数

config.setMaxTotal(20);*/

System.out.println("默认值:"+config.getMaxIdle());

System.out.println("默认值:"+config.getMinIdle());

System.out.println("默认值:"+config.getMaxTotal());

return config;

}

/**

* 2.创建JedisConnectionFactory:配置redis链接信息

*/

@Bean

@ConfigurationProperties(prefix="spring.redis")

public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){

System.out.println("配置完毕:"+config.getMaxIdle());

System.out.println("配置完毕:"+config.getMinIdle());

System.out.println("配置完毕:"+config.getMaxTotal());

JedisConnectionFactory factory = new JedisConnectionFactory();

//关联链接池的配置对象

factory.setPoolConfig(config);

//配置链接Redis的信息

//主机地址

/*factory.setHostName("192.168.70.128");

//端口

factory.setPort(6379);*/

return factory;

}

/**

* 3.创建RedisTemplate:用于执行Redis操作的方法

*/

@Bean

public RedisTemplate redisTemplate(JedisConnectionFactory factory){

RedisTemplate template = new RedisTemplate<>();

//关联

template.setConnectionFactory(factory);

//为key设置序列化器

template.setKeySerializer(new StringRedisSerializer());

//为value设置序列化器

template.setValueSerializer(new StringRedisSerializer());

return template;

}

}

四、添加pojo

/**

* @program: springboot-redis-demo

* @description: Users

* @author: 波波烤鸭

* @create: 2019-05-20 23:47

http:// */

public class Users implements Serializable {

private Integer id;

private String name;

private Integer age;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "Users [id=" + id + ", name=" + name + ", age=" + age + "]";

}

}

五、单元测试

@RunWith(SpringRunner.class)

@SpringBootTest(classes = SpringbootRedisDemoApplication.class)

public class SpringbootRedisDemoApplicationTests {

@Autowired

private RedisTemplate redisTemplate;

/**

* 添加一个字符串

*/

@Test

public void testSet(){

this.redisTemplate.opsForValue().set("key", "bobokaoya...");

}

/**

* 获取一个字符串

*/

@Test

public void testGet(){

String value = (String)this.redhttp://isTemplate.opsForValue().get("key");

System.out.println(value);

}

/**

* 添加Users对象

*/

@Test

public void testSetUesrs(){

Users users = new Users();

users.setAge(20);

users.setName("张三丰");

users.setId(1);

//重新设置序列化器

this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());

this.redisTemplate.opsForValue().set("users", users);

}

/**

* 取Users对象

*/

@Test

public void testGetUsers(){

//重新设置序列化器

this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());

Users users = (Users)this.redisTemplate.opsForValue().get("users");

System.out.println(users);

}

/**

* 基于jsON格式存Users对象

*/

@Test

public void testSetUsersUseJSON(){

Users users = new Users();

users.setAge(20);

users.setName("李四丰");

users.setId(1);

this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));

this.redisTemplate.opsForValue().set("users_json", users);

}

/**

* 基于JSON格式取Users对象

*/

@Test

public void testGetUseJSON(){

this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Users.class));

Users users = (Users)this.redisTemplate.opsForValue().get("users_json");

System.out.println(users);

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:单片机气象网站api接口(天气预报api接口)
下一篇:平台客服快递物流查询单号(物流查询平台快递单号查询接口)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~