背景
最近跟着大佬学习,发现之前都是一知半解,还是得系统学一下。
重温redis,有一下整理Redis是一种基于内存的高性能键值存储系统,它支持多种数据结构和持久化方式,并提供了许多高级功能,如发布/订阅、事务等。
下面是Redis的一些知识点:
- 数据结构 Redis支持字符串、列表、哈希、集合和有序集合这五种数据结构。其中,字符串是最基本的数据类型,而其他四种数据结构则是在字符串基础上实现的高级数据结构。
- 持久化 Redis提供了两种持久化方式:RDB和AOF。RDB是将Redis数据集以快照的形式保存在磁盘上,而AOF则是将Redis执行的每个写命令都追加到一个文件中。可以根据具体需求选择一种或两种持久化方式来保证数据的持久性。
- 发布/订阅 Redis支持发布/订阅模式,允许多个客户端订阅同一个频道,并在频道发布消息时接收到通知。这种模式在实现即时通信、消息推送等场景时非常有用。
- 事务 Redis支持事务,可以将多个命令打包成一个事务进行执行,并且保证事务的原子性。在执行事务期间,如果出现错误,Redis会回滚整个事务,保证数据的一致性。
- Lua脚本 Redis支持Lua脚本,可以将多个命令封装成一个脚本进行执行。Lua脚本在性能和灵活性上都比较优秀,可以用来实现一些复杂的业务逻辑。
- 集群 Redis可以通过集群方式实现高可用性和横向扩展。Redis集群采用分片方式进行数据分布,每个节点只负责部分数据,同时还提供了故障转移和自动负载均衡等功能。
- 性能优化 Redis的性能非常高,但在实际使用过程中也需要注意一些性能优化方面的问题,如合理设置内存、使用pipeline和批量操作等。此外,还可以通过Redis性能剖析工具来定位性能瓶颈并进行优化。
这些是Redis的一些基本知识点,使用Redis需要结合实际场景进行具体实现和调优。
方便大家梳理,下边是我整理到思维导图,拿走不谢。
项目中简单使用
- 引入Redis依赖
在Maven或Gradle项目中,需要在pom.xml或build.gradle中添加以下依赖:
Maven:
xmlCopy code
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 配置Redis连接信息
在application.properties或application.yml中添加以下配置信息:
propertiesCopy code
# Redis连接信息
spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0
- 使用RedisTemplate进行操作
在代码中使用RedisTemplate类来进行Redis操作,可以通过@Autowired注解注入该类的实例。RedisTemplate类提供了一系列的操作方法,如get、set、incr等。
下面是一个简单的使用RedisTemplate的示例代码:
javaCopy code
@RestController
public class RedisController {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@GetMapping("/set")
public String set() {
redisTemplate.opsForValue().set("name", "Tom");
return "success";
}
@GetMapping("/get")
public String get() {
String name = redisTemplate.opsForValue().get("name");
return name;
}
}
在上面的示例中,我们使用RedisTemplate来设置和获取名为“name”的键值对。通过调用opsForValue()方法获取Redis字符串操作类,然后调用set()和get()方法实现相应的操作。
这些是Spring Boot整合Redis的基本步骤,可以根据具体需求进行扩展和优化,实际项目中应用的话是需要对redis做个简单的封装,以方便批量调用。
如下图: 小编平时做的好多项目都在用,大家有啥需求也可以来找小编哟。
基本上都会有这么一个封装的工具类,只不过有的公司的封装到底层框架里了,看不到而已。
总结
如果你有更优秀的操作,评论区留言,我们一起学习!!!!