背景
这篇文章不会介绍如何下载Redis,默认从下载安装完Redis后开始讲,主要描述spring boot中怎么整合Redis并使用Redis,步骤超级简单,只要按照如下步骤做,肯定能成功。
第一步 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
第二步 配置Redis数据库参数
在properties文件中配置以下参数
第一个参数是选择启用Redis中哪个库
第二个参数是访问的库的ip,我这里示意的是本机的ip
第三个参数是Redis的端口,默认是6379
第三步 配置Redis配置类
其实Redis的配置类spring boot已经帮我们配置好了,但是spring boot的配置里的Redis的Key为Object对象,而实际使用中我们的Redis的key值一般都是String类型,所以我们需要重新配置Redis配置类,以下是如何编写配置类.
package com.nowcoder.community.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
@Configuration
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
//实例化RedisTemplate
RedisTemplate<String, Object> template = new RedisTemplate<>();
//Template有了工厂以后,就具有了访问数据库的能力
template.setConnectionFactory(factory);
//设置key序列化方式
template.setKeySerializer(RedisSerializer.string());
//设置value序列化方式
template.setValueSerializer(RedisSerializer.json());
//设置hash的key序列化方式
template.setHashKeySerializer(RedisSerializer.string());
//设置hash的value序列化方式
template.setHashValueSerializer(RedisSerializer.json());
//触发设置生效
template.afterPropertiesSet();
return template;
}
}
简单的Redis使用Demo
上面的三步完成之后就已经整合完毕了,接下来就可以在spring boot中使用Redis了,以下是Redis的基本使用Demo,开始写Demo之前记得启动Redis服务器哦
存数据
取数据
控制台信息
Redis客户端信息
扩展
- Redis也是支持事务的,下面Demo展示的是Redis编程式事务的启用
1.注入RedisTemplate
2.调用execute()方法,参数为一个回调函数
3.开启事务,multi()
4.提交事务,exec()
Redis的编程式事务有特殊性,注意不要在事务方法内执行查询获取操作,查询获取操作放在开启事务之前或提交事务之后再进行
- 如果不用spring boot,Java怎么连接Redis呢,这就要通过jedis来连接了,假设这是一个使用maven管理的普通Java项目。
1.导入jedis依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
2.在本地或者Linux服务器中启动redis
3.使用jedis连接上redis
package com.jizhu;
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args) {
//连接redis,参数为redis所在服务器ip和它的端口号
Jedis jedis=new Jedis("192.168.195.134",7000);
//就可以使用jedis操作redis了
String name = jedis.get("name");
System.out.println(name);
}
}