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

java学习3-redis集成

背景:

        在Spring Boot项目中集成Redisson的详细教程。利用Redisson,你可以更轻松地在Java应用中操作Redis,并实现各种分布式数据结构与服务。

1、创建项目与依赖

首先,创建一个新的Spring Boot项目,并在pom.xml中添加Redisson的Starter依赖

<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.16.0</version> 
</dependency>

配置连接信息

application.yml(或application.properties)中配置Redis服务器的基本连接信息

spring:redis:host: localhost  # 你的Redis服务器地址port: 6379       # Redis端口,默认6379# 如果Redis设置了密码,需要配置password项# password: your_redis_password_here

核心配置与基础操作

完成基础配置后,你可以开始使用RedissonClient执行一些基础操作。

1、注入RedissonClient

在Spring Boot中,配置好依赖和连接信息后,你可以直接在需要的地方注入RedissonClient对象

@Autowired
private RedissonClient redissonClient;

    2、基础键值对操作

    使用RBucket可以方便地操作字符串类型的键值对

    public void basicOperations() {// 获取一个名为"myKey"的存储桶RBucket<String> bucket = redissonClient.getBucket("myKey");// 设置键值,并可设置过期时间bucket.set("这是一条缓存数据", 10, TimeUnit.MINUTES); // 10分钟后过期// 获取值String value = bucket.get();System.out.println("获取到的值: " + value);// 删除键// bucket.delete();
    }

    操作分布式集合

    Redisson提供了多种分布式集合。以下是以RMap(分布式Map)为例的简单使用

    public void useDistributedMap() {// 获取一个名为"userMap"的分布式MapRMap<String, String> userMap = redissonClient.getMap("userMap");// 向Map中存放数据userMap.put("user001", "用户张三的信息");userMap.put("user002", "用户李四的信息");// 根据键获取值String userInfo = userMap.get("user001");System.out.println("用户001的信息: " + userInfo);// 遍历Map的所有键for (String key : userMap.keySet()) {System.out.println("Key: " + key);}
    }

    使用缓存注解简化开发

    除了直接使用RedissonClient,你还可以结合Spring的缓存注解来简化缓存代码的编写

    1、启用缓存支持

    在Spring Boot的主应用类或者配置类上添加@EnableCaching注解:

    @SpringBootApplication
    @EnableCaching // 启用Spring的缓存支持
    public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
    }

    2、使用注解管理缓存

    在Service层的方法上使用缓存注解,Spring会自动处理数据的缓存与读取

    @Service
    public class UserService {// @Cacheable: 方法执行前先检查缓存,如果缓存存在,直接返回缓存数据@Cacheable(value = "userCache", key = "#userId")public User getUserById(String userId) {// 模拟从数据库查询用户信息System.out.println("从数据库查询用户: " + userId);User user = new User();user.setId(userId);user.setName("用户:" + userId);return user;}// @CacheEvict: 用于清除缓存@CacheEvict(value = "userCache", key = "#userId")public void updateUser(String userId) {// 更新用户信息...System.out.println("更新用户数据,并清除缓存: " + userId);}// @CachePut: 无论如何都执行方法,并将结果放入缓存@CachePut(value = "userCache", key = "#user.id")public User updateUserProfile(User user) {// 更新用户资料...System.out.println("更新用户资料,并刷新缓存");return user;}
    }

    http://www.dtcms.com/a/618123.html

    相关文章:

  1. 【Linux】深入理解进程(四)(进程地址空间)
  2. 数据结构1.0 面试题
  3. 网站定制哪家快高档网站设计公司
  4. 信创产品认证机构有哪些?信创检测报告和信创产品评估证书如何办理?
  5. 官方网站建设计划书文山做网站yunling88
  6. 数据分析笔记12:函数
  7. 如何驯服AI编程
  8. 电动自行车起火酿事故,智慧社区如何分阶段阻绝灾害发生?
  9. 淄博做网站的公司排名优化系统
  10. 基于Rust构建一个实用的图片转Base64工具
  11. asp.net mvc做网站难吗胶州网站优化
  12. [C#] NO.4 我的第一个项目
  13. 运放之电压跟随器
  14. CSS3 框大小
  15. 商城网站系统资源
  16. 网站源码怎么有苏州首页关键词优化
  17. 深度学习实战(基于pytroch)系列(二十二)多通道输入输出
  18. 本周热搜(11月9日~11月16日)
  19. React useMemo(当依赖项未变化,重复渲染时直接返回上一次缓存计算结果,而非重新执行计算)
  20. 【IOS开发】Objective-C 与 Swift 的对比
  21. 在STM32 HAL库中使用 WFI 实现低功耗准确延时
  22. 编程语言落地手册:erlang实现与汇编剖析
  23. 搜索下单(es、mysql、MQ同步;关于事务失效)
  24. aleph-node Node upgrade instructions 节点升级说明
  25. 找谁做网站网站建设与运营培训班
  26. 智能制造与工业4.0:5G与物联网的深度融合
  27. GSV1201S(2201S)#ACP@支持 DisplayPort 1.2 到 HDMI 1.4 转换且集成嵌入式 MCU
  28. Linux SPI 驱动实验
  29. 【开题答辩全过程】以 基于Java的水族馆销售与经营管理系统的设计与实现为例,包含答辩的问题和答案
  30. 网站响应是什么问题吗最近国际时事