springboot和redis

暑假的时候抽时间看了看redis,感觉还不算太难,也可能是我没深究。今天学了springboot整合redis,记录一下。

首先引入依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

然后配置文件配置一下redis,还可以配置password,我的没密码,就这些够了。

spring:
  redis:
    #redis连接信息
    host: 127.0.0.1
    port: 6379
    #还可以配置password,我的没密码,就这些够了

因为引入了spring-boot-starter-data-redis这个依赖,就可以使用RedisTemplate了。RedisTempla是一个spring-redis模块下的操作redis的工具类。直接上方法

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootRedisApplicationTests {

	@Autowired
	private RedisTemplate<Object, Object> redisTemplate;

	@Test
	public void contextLoads() {
		User user = new User(1, "admin", "123456");
		redisTemplate.opsForValue().set("user1", user);
	}

}

上面就是保存了一个键值对,键"user1",值user对象。

 

然后运行,这里会报一个错

大致意思就是我的user类需要序列化,所以实现一下Serializable就ok

public class User implements Serializable {
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String username;
	private String password;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public User() {
	}

	public User(Integer id, String username, String password) {
		this.id = id;
		this.username = username;
		this.password = password;
	}

	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}

}

 

然后再运行就没什么问题了。再看看redis,数据进来了,但都是些不太看得懂的东西。这是因为保存对象的话默认用的是jdk序列化机制。

 

这里试着用json的方式保存数据,就是将对象转为json。。。

首先依赖

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
	<groupId>org.codehaus.jackson</groupId>
	<artifactId>jackson-mapper-asl</artifactId>
	<version>1.9.13</version>
</dependency>

 

 

 

 

 

然后写个配置类,用来将对象转为json

@Configuration
public class RedisConfig {
	@Bean
	public RedisTemplate<Object, User> userRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
		RedisTemplate<Object, User> template = new RedisTemplate<Object, User>();
		template.setConnectionFactory(redisConnectionFactory);
		Jackson2JsonRedisSerializer<User> ser = new Jackson2JsonRedisSerializer<User>(User.class);
		template.setDefaultSerializer(ser);
		return template;
	}

}
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootRedisApplicationTests {

	@Autowired
	private RedisTemplate<Object, User> userRedisTemplate;

	@Test
	public void contextLoads() {
		User user = new User(1, "admin", "123456");
		userRedisTemplate.opsForValue().set("user1", user);
	}

}

测试类中引入了我们配置的UserRedisTemplate,然后运行。查看redis如下,说明成功啦哈哈哈哈哈哈哈哈哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值