项目中,数据的访问往往都是直接访问数据库的方式,但如果对数据的访问量很大或者访问很频繁的话,将会对数据库来很大的压力,甚至造成数据库崩溃。为了解决这类问题,redis,etcd等都可以,但如是用在缓存中的话,redis可能更具优势,本文,主要讲如何在SpringBoot中使用Redis.
Redis简单介绍
Redis是一个高性能的key-value非关系性数据库(NoSql)
Redis具有以下特点:
1,Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。2,Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3,Redis支持数据的备份,即master-slave模式的数据备份。
Redis可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)
Redis 优势
性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
安装Redis
此处安装的是在Linux那边安装,此处安装步骤省略。
安装之后,开启redis的命令:
./redis-server &
SpringBoot中使用Redis
以之前构建的项目为基准,使用Redis.
添加Redis依赖包在项目的pom.xml中添加如下:
<!-- redis依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
配置Redis数据库连接
#redis配置
#Redis服务器地址spring.redis.host=127.0.0.1
#Redis服务器连接端口
spring.redis.port=6379
#Redis数据库索引(默认为0)
spring.redis.database=0
#连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=50
#连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=3000
#连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
#连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=2
#连接超时时间(毫秒)
spring.redis.timeout=5000
编写Redis操作工具类
@Component
public class RedisUtils {
@Autowired
private RedisTemplate<String, String> redisTemplate;
/** * 读取缓存 * * @param key * @return */
public String get(final String key) {
return redisTemplate.opsForValue().get(key);
}
/** * 写入缓存 */
public boolean set(final String key, String value) {
boolean result = false;
try {
redisTemplate.opsForValue().set(key, value);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
/** * 更新缓存 */
public boolean getAndSet(final String key, String value) {
boolean result = false;
try {
redisTemplate.opsForValue().getAndSet(key, value);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
/** * 删除缓存 */
public boolean delete(final String key) {
boolean result = false;
try {
redisTemplate.delete(key);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}
测试
写一个测试用例类来完成对redis的读写
直接在controller方法中,set数据
redisUtils.set("redis_key_test", "redis_vale");
并读取缓存数据
String value = redisUtils.get(" redis_key_test ");
System.out.println(value);
执行完测试方法set后,可以登录到redis上查看数据是否插入成功。
用redis的客户端连接器,访问查看,发现可以找到测试的数据
本章节只是简单的介绍了下在SpringBoot中如何使用Redis,Redis的使用远远不止这些,根据实际项目需求将会变得更加复杂,其中事物等都是可以通过redis来处理的。
版权声明:本文为CSDN博主「xcbeyond」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xcbeyond/article/details/81116600