技术栈入门-----Redisson

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容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
目录
相关文章
|
7月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
478 0
|
4月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
4月前
|
XML Java Maven
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
这篇文章是Spring5框架的入门到实战教程,介绍了Spring5的新功能——整合日志框架Log4j2,包括Spring5对日志框架的通用封装、如何在项目中引入Log4j2、编写Log4j2的XML配置文件,并通过测试类展示了如何使用Log4j2进行日志记录。
Spring5入门到实战------16、Spring5新功能 --整合日志框架(Log4j2)
|
4月前
|
Java API Spring
Spring5入门到实战------1、Spring5框架概述、入门案例
这篇文章是Spring5框架的入门教程,概述了Spring框架的核心概念和特点,并通过一个创建普通Java类的案例,详细演示了从下载Spring核心Jar包、创建配置文件、编写测试代码到运行测试结果的完整流程,涵盖了Spring IOC容器的使用和依赖注入的基本用法。
|
7月前
|
Java Spring
《玩转spring全家桶》学习笔记-------------丁雪丰
《玩转spring全家桶》学习笔记-------------丁雪丰
100 0
|
JSON 缓存 NoSQL
技术栈入门-------Redis
技术栈入门-------Redis
124 0
|
缓存 Java
技术栈入门------线程池
技术栈入门------线程池
63 0
|
缓存 NoSQL Redis
技术栈入门------SpringSession
技术栈入门------SpringSession
76 0
|
消息中间件 数据库
技术栈入门------RabbitMQ2
技术栈入门------RabbitMQ
65 0
|
消息中间件 JSON Linux
技术栈入门------RabbitMQ1
技术栈入门------RabbitMQ
71 0