当前位置: 首页 > news >正文

【微服务中间件学习】redis基础及项目使用

背景

最近跟着大佬学习,发现之前都是一知半解,还是得系统学一下。

img

重温redis,有一下整理Redis是一种基于内存的高性能键值存储系统,它支持多种数据结构和持久化方式,并提供了许多高级功能,如发布/订阅、事务等。

下面是Redis的一些知识点:

  1. 数据结构 Redis支持字符串、列表、哈希、集合和有序集合这五种数据结构。其中,字符串是最基本的数据类型,而其他四种数据结构则是在字符串基础上实现的高级数据结构。
  2. 持久化 Redis提供了两种持久化方式:RDB和AOF。RDB是将Redis数据集以快照的形式保存在磁盘上,而AOF则是将Redis执行的每个写命令都追加到一个文件中。可以根据具体需求选择一种或两种持久化方式来保证数据的持久性。
  3. 发布/订阅 Redis支持发布/订阅模式,允许多个客户端订阅同一个频道,并在频道发布消息时接收到通知。这种模式在实现即时通信、消息推送等场景时非常有用。
  4. 事务 Redis支持事务,可以将多个命令打包成一个事务进行执行,并且保证事务的原子性。在执行事务期间,如果出现错误,Redis会回滚整个事务,保证数据的一致性。
  5. Lua脚本 Redis支持Lua脚本,可以将多个命令封装成一个脚本进行执行。Lua脚本在性能和灵活性上都比较优秀,可以用来实现一些复杂的业务逻辑。
  6. 集群 Redis可以通过集群方式实现高可用性和横向扩展。Redis集群采用分片方式进行数据分布,每个节点只负责部分数据,同时还提供了故障转移和自动负载均衡等功能。
  7. 性能优化 Redis的性能非常高,但在实际使用过程中也需要注意一些性能优化方面的问题,如合理设置内存、使用pipeline和批量操作等。此外,还可以通过Redis性能剖析工具来定位性能瓶颈并进行优化。

这些是Redis的一些基本知识点,使用Redis需要结合实际场景进行具体实现和调优。

​ 方便大家梳理,下边是我整理到思维导图,拿走不谢。

WX20230418-142751@2x

项目中简单使用

  1. 引入Redis依赖

在Maven或Gradle项目中,需要在pom.xml或build.gradle中添加以下依赖:

Maven:

xmlCopy code
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置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

image-20230418143853259

  1. 使用RedisTemplate进行操作

在代码中使用RedisTemplate类来进行Redis操作,可以通过@Autowired注解注入该类的实例。RedisTemplate类提供了一系列的操作方法,如get、set、incr等。

下面是一个简单的使用RedisTemplate的示例代码:

javaCopy code
@RestController
public class RedisController {@Autowiredprivate 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做个简单的封装,以方便批量调用。

如下图: 小编平时做的好多项目都在用,大家有啥需求也可以来找小编哟。

image-20230418144233106

基本上都会有这么一个封装的工具类,只不过有的公司的封装到底层框架里了,看不到而已。

img

总结

如果你有更优秀的操作,评论区留言,我们一起学习!!!!

http://www.lryc.cn/news/60835.html

相关文章:

  • ORA-04021:等待锁定对象时发生超时
  • 【华为OD机试真题 C++】1066 - 新工号中数字的最短长度 | 机试题+算法思路+考点+代码解析
  • 【数字 IC / FPGA】 有关建立/保持时间计算的思考
  • 【Fluent】Run can not be started until validation issues are resolved.
  • 【进阶C语言】有关动态内存管理的经典笔试题(详细图文讲解)
  • 1.Java系列之基础面试题总结
  • Android:usb转232串口通信
  • 动态设置图片的主题色(保留明暗关系)
  • mybatis中#与$的区别
  • CVPR2023论文整理
  • RK3399平台开发系列讲解(中断篇)掌握信号处理
  • 业余爱好者想入门编程,一定远离那些只会说No的家伙,尤其程序员
  • DHCP及中继(UOS)
  • 【Linux】进程的概念
  • 奇舞周刊第490期:WebAssembly 多语言/宿主环境中的使用
  • 【css】使用css实现提示框各种弹出效果。
  • 1685_Excel的几种脚本处理方式
  • Unity中使用struct和class来存储数据的注意事项
  • 共阳(共阴)LED数码管编码交互演示
  • 如何在 TensorFlow 中使用 GPU 加速深度学习计算?
  • RK3568平台开发系列讲解(Linux系统篇)线程 pthread 详解
  • hspJAVA
  • OpenAI-ChatGPT最新官方接口《嵌入向量式文本转换》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(五)(附源码)
  • 1042. 不邻接植花
  • Linux FTP服务
  • JavaScript基础入门全解析(下)
  • 【C++初阶】(入门)输入输出
  • 初识Linux+Linux基本指令(一)
  • 部署架构 因为单体架构痛点 升级到微服务架构
  • mapreduce打包提交执行wordcount案例