技术栈入门-----Redisson

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 技术栈入门-----Redisson

使用Redisson的准备工作

1、导入依赖

<!-- 以后使用redisson作为分布式锁,分布式对象等功能框架 -->
<dependency>
  <groupId>org.redisson</groupId>
  <artifactId>redisson</artifactId>
  <version>3.16.8</version>
</dependency>

2、设置Redission配置类

package com.saodai.saodaimall.saodaimall.seckill.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.io.IOException;
/**
* redission分布式锁配置类
*/
@Configuration
public class MyRedissonConfig {
    /**
    * 所有对Redisson的使用都是通过RedissonClient
    * @return
    * @throws IOException
    */
    @Bean(destroyMethod="shutdown")
    public RedissonClient redisson() throws IOException {
        //1、创建配置
        Config config = new Config();
        //配置虚拟机的地址
        config.useSingleServer().setAddress("redis://192.168.241.128:6379");
        //2、根据Config创建出RedissonClient实例(单个实例)
        //Redis url should start with redis:// or rediss://
        RedissonClient redissonClient = Redisson.create(config);
        return redissonClient;
    }
}


本商城项目哪里用到了Redisson

秒杀服务

1、秒杀服务中定时任务的秒杀商品上架的库存存入redis时就用到了redission实现分布式信号量

下面分布式信号量设置时就会把信号量以库存的格式key:seckill:stock:随机码 value:秒杀商品的总数量存到reids缓存中

@Autowired
private RedissonClient redissonClient;
/**5、使用库存作为分布式Redisson信号量(限流)**/
//获取分布式信号量,信号量名称为seckill:stock:+随机码
RSemaphore semaphore = redissonClient.getSemaphore(SKU_STOCK_SEMAPHORE + token);
// 秒杀商品的库存数量作为信号量的值(允许同时seckillSkuVo.getSeckillCount()个用户获取到信号量)
semaphore.trySetPermits(seckillSkuVo.getSeckillCount());


2、秒杀时具体实现

@Autowired
private RedissonClient redissonClient;
//分布式锁
RSemaphore semaphore = redissonClient.getSemaphore(key);
//尝试快速拿到信号量,100毫秒没有用拿到就返回false
//在指定的时间内尝试地获取1个许可,如果获取不到就返回false
boolean semaphoreCount = semaphore.tryAcquire(num, 100, TimeUnit.MILLISECONDS);
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
Java
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
这篇文章是Spring5框架的实战教程,深入讲解了AOP的基本概念、如何利用动态代理实现AOP,特别是通过JDK动态代理机制在不修改源代码的情况下为业务逻辑添加新功能,降低代码耦合度,并通过具体代码示例演示了JDK动态代理的实现过程。
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
|
1月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
1月前
|
前端开发 Java 应用服务中间件
后端框架学习3------SpringMVC
这篇文章是关于SpringMVC的学习笔记,详细介绍了使用Spring注解开发的过程,包括项目结构、配置文件编写、控制器创建、前端视图与控制器的映射,以及SpringMVC中处理器映射器、处理器适配器和视图解析器的配置,还涉及了结果处理风格、重定向与转发的概念,以及如何解决乱码问题。
后端框架学习3------SpringMVC
|
1月前
|
XML Java 数据格式
后端框架学习1-----Spring
这篇文章是Spring学习笔记,涵盖了Spring框架的基本概念、IoC容器、依赖注入(DI)的方式(包括set注入和构造函数注入)、复杂类型依赖注入、Bean的作用域和自动装配,以及Spring注解开发方式,包括@Autowired和@Qualifier注解的使用,以及@Component及其衍生注解的功能。
后端框架学习1-----Spring
|
1月前
|
Java 数据库连接 数据库
后端框架学习-----mybatis(4)
这篇文章介绍了如何解决在使用MyBatis时数据库字段名和Java实体类属性名不一致的问题,通过使用`<resultMap>`元素来映射字段和属性,确保能够正确地查询和映射数据。
|
1月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
1月前
|
Java API Spring
Spring5入门到实战------1、Spring5框架概述、入门案例
这篇文章是Spring5框架的入门教程,概述了Spring框架的核心概念和特点,并通过一个创建普通Java类的案例,详细演示了从下载Spring核心Jar包、创建配置文件、编写测试代码到运行测试结果的完整流程,涵盖了Spring IOC容器的使用和依赖注入的基本用法。
|
3月前
|
监控 NoSQL Java
【面试高频 time:】SpringBoot整合Redisson实现分布式锁
【面试高频 time:】SpringBoot整合Redisson实现分布式锁
29 0
|
JSON 缓存 NoSQL
技术栈入门-------Redis
技术栈入门-------Redis
112 0
|
缓存 Java
技术栈入门------线程池
技术栈入门------线程池
60 0