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

SpringBoot 集成 Redis 总结

一、Redis 简介

Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis 以其高效的性能、丰富的数据结构和简单的 API 而受到广泛关注。它将数据存储在内存中,并可以通过持久化机制将数据保存到硬盘上,以防止数据丢失。

二、Redis 的数据类型

  1. 字符串(String):可以存储任何形式的字符串,如文本、数字等。例如:SET key value
  2. 哈希(Hash):类似于 Java 中的 Map 结构,由键值对组成。例如:HSET hash_key field value
  3. 列表(List):是一个有序的字符串列表,可以在列表的两端进行快速的插入和删除操作。例如:LPUSH list_key value
  4. 集合(Set):是一个无序的、不重复的字符串集合。例如:SADD set_key value
  5. 有序集合(Sorted Set):与集合类似,但每个元素都关联一个分数,可以根据分数进行排序。例如:ZADD sorted_set_key score value

三、Redis 的关键优势

  1. 高性能:Redis 将数据存储在内存中,因此具有非常高的读写速度,可以满足对性能要求较高的应用场景。
  2. 丰富的数据结构:Redis 提供了多种数据结构,可以满足不同的应用需求,使得开发者可以更加灵活地存储和操作数据。
  3. 持久化:Redis 支持两种持久化方式,即 RDB(快照)和 AOF(日志追加),可以将数据持久化到硬盘上,保证数据的安全性。
  4. 高可用性:Redis 可以通过主从复制和哨兵机制实现高可用性,当主节点出现故障时,从节点可以自动切换为主节点,保证服务的不间断。
  5. 支持分布式:Redis 可以很容易地进行分布式部署,通过分片技术可以将数据分布到多个节点上,提高系统的扩展性和性能。

四、SpringBoot 集成 Redis 代码示例

  1. 添加依赖
    pom.xml文件中添加 Redis 依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置 Redis
    application.properties文件中配置 Redis:
spring.redis.host=localhost
spring.redis.port=6379
  1. 使用 Redis
    创建一个RedisService类,用于操作 Redis:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;@Service
public class RedisService {@Autowiredprivate RedisTemplate<String, Object> redisTemplate;public void set(String key, Object value) {redisTemplate.opsForValue().set(key, value);}public Object get(String key) {return redisTemplate.opsForValue().get(key);}
}

在其他地方可以使用RedisService类来操作 Redis:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class MyController {@Autowiredprivate RedisService redisService;@GetMapping("/set")public String setValue() {redisService.set("key", "value");return "Value set in Redis";}@GetMapping("/get")public String getValue() {Object value = redisService.get("key");return value!= null? value.toString() : "Value not found in Redis";}
}

http://www.mrgr.cn/news/48198.html

相关文章:

  • 在linux系统的docker中安装GitLab
  • 音视频学习(二十五):ts
  • 微服务设计(第2版)读书笔记
  • 国标GB28181平台EasyGBS在安防视频监控中的信号传输(电源/视频/音频)特性及差异
  • 利用 Python 解决 “奇数之和” 问题
  • 如何解决Elastic Job Lite任务分配到不健康实例问题?
  • 中间件有哪些分类?
  • HW--GaussDB--(一)--老登原来TM是你啊,哈哈!
  • 5.STM32的串口通信
  • 鸿蒙开发(NEXT/API 12)【使用fetch发送网络请求】远场通信服务
  • STM32学习--3-5 光敏控制传感器控制蜂鸣器
  • 【Unity基础】Unity内购支持哪些应用商店?
  • Carrier Aggregation 笔记
  • 基于Maven 运行OpenRewrite的快速示例
  • 探索机器学习中的特征选择技术
  • 【华为】配置RIP协议
  • 【cpp】模板函数 模板类 特化 书写格式备忘
  • 鸿蒙OS开发全面指南:从入门到实战的系统化学习路径
  • 【Redis十二】Redis的典型应用(缓存和分布式锁)
  • 电子取证新视角:USB键盘流量提取密码方法研究与实现
  • 【编程进阶知识】掌握Java线程高效管理:节省资源与提升性能的十大技巧
  • c#代码介绍23种设计模式_23备忘录模式
  • Rstudio 绘制elecdaily的时序图与预测
  • Chrome清除nslookup解析记录 - 强制http访问 - 如何禁止chrome 强制跳转https
  • 【WebGIS】Cesium:快速创建三维地图
  • R语言:ERGM指数随机图模型