首页
编程日记
测试工具
排序算法
ansible
c++20
Redisson
2024/9/20 6:48:54
猜测、实现 B 站在看人数
猜测、实现 B 站在看人数 猜测找到接口参数总结 实现 猜测 找到接口 浏览器打开一个 B 站视频,比如 《黑神话:悟空》最终预告 | 8月20日,重走西游_黑神话悟空 (bilibili.com) ,打开 F12 开发者工具,经过观察…
阅读更多...
Java项目对接redis,客户端是选Redisson、Lettuce还是Jedis?
JAVA项目对接redis,客户端是选Redisson、Lettuce还是Jedis? 一、客户端简介1. Jedis介绍2. Lettuce介绍3. Redisson介绍 二、横向对比三、选型说明 在实际的项目开发中,对于一个需要对接Redis的项目来说,就面临着选择合适的Redis客…
阅读更多...
Redisson实现分布式锁
原文链接,对本文进行了总结记录 1.Redisson入门 概念 Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格。通俗来将,就是在 Redis 基础上实现的分布式工具集合。点击访问项目地址。 引入依赖 <!--redisson--> <dependency>&…
阅读更多...
Spring Boot整合Redisson的两种方式
项目场景 Spring Boot整合Redisson的两种方式,方式一直接使用yml配置,方式二创建RedissonConfig配置类。 前言 redisson和redis区别: Redis是一个开源的内存数据库,支持多种数据类型,如字符串、哈希、列表、集合和有序…
阅读更多...
【八股】Redisson分布式锁
Redisson分布式锁 主要了解了Redisson分布式锁实现的三个功能: 1.可重入 -> 防止死锁 2.可重试(i.e. 非阻塞获取锁) 3.自动续约 1. 可重入 原理: 利用Redis的Hash结构,记录了使用当前锁的线程id和重用次数&#…
阅读更多...
【八股】Redisson分布式锁
Redisson分布式锁 主要了解了Redisson分布式锁实现的三个功能: 1.可重入 -> 防止死锁 2.可重试(i.e. 非阻塞获取锁) 3.自动续约 1. 可重入 原理: 利用Redis的Hash结构,记录了使用当前锁的线程id和重用次数&#…
阅读更多...
Redisson - tryLock 函数参数分析
这里有三个参数: waitTime:等待时间leaseTime:超时施放时间TimeUnit:时间单位 等待时间 如果 ABC… 多个线程去抢夺一把锁,A 成功了,如果设置的是 -1,那么 BCD... 就不等待,直接返…
阅读更多...
Redisson - 看门狗机制(Watch Dog)禁用方案
问题描述 Redis - Redisson tryLock 函数参数分析-CSDN博客 我们在这篇文章有提到过看门狗机制,其实有时候我们不想要看门狗机制的时候,如何禁用呢?!因为有时候不想续期,需要实时性比较高的业务,但是看门…
阅读更多...
关于redisson的序列化配置
由于使用redisson来存储list,返回的数据格式总是不对 原因是配置的序列化格式不对 Bean(value "redissonDtClient") public RedissonClient redissonClient() {RedisConnectionProperties.RedisConfigEntity configEntity properties.getDt();log.inf…
阅读更多...
Spring Boot集成Redisson实现延迟队列
项目场景: 在电商、支付等领域,往往会有这样的场景,用户下单后放弃支付了,那这笔订单会在指定的时间段后进行关闭操作,细心的你一定发现了像某宝、某东都有这样的逻辑,而且时间很准确,误差在1s内…
阅读更多...
Redisson分布式锁
目录 Redisson的基本使用 Redisson的基本原理 Redis中的使用 简单了解一下Lua脚本 加锁脚本 解锁脚本 看门口续期lua脚本 源码 tryLock方法 tryAcquireAsync方法 unlock方法 renewExpiration()方法 在一个进程的各个线程间保持数据的同步可以…
阅读更多...
Redisson分布式锁
目录 Redisson的基本使用 Redisson的基本原理 Redis中的使用 简单了解一下Lua脚本 加锁脚本 解锁脚本 看门口续期lua脚本 源码 tryLock方法 tryAcquireAsync方法 unlock方法 renewExpiration()方法 在一个进程的各个线程间保持数据的同步可以…
阅读更多...
redisson 使用脚本实现判断元素不在队列中则插入的原子操作
脚本逻辑: 取出队列所有元素遍历元素查找值是否存在不存在则推入 final String scriptText """local valuesInTarget redis.call(lrange, KEYS[1], 0, -1);local index 0;for i, v in ipairs(valuesInTarget) doif v value thenindex ibreake…
阅读更多...
Redisson-获取连接原理
归档 GitHub: Redisson-获取连接原理 简介 Redisson 有连接池,获取连接时会从池里面去获取 测试 在 RedissonListTest 加个方法 Testpublic void testGet1() {RList<Integer> list redisson.getList("list", IntegerCodec.INSTANCE);list.add…
阅读更多...
Redisson-Lock-加锁原理
归档 GitHub: Redisson-Lock-加锁原理 Unit-Test RedissonLockTest 说明 源码类:RedissonLock // 加锁入口 Override public void lock() { lock(-1, null, false); }/*** 加锁实现 */ private void lock(long leaseTime, TimeUnit unit, boolean interruptib…
阅读更多...
抢单业务介绍
存在的问题 会出现多个人同时访问的问题 解决办法:在判断前加锁,使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper
阅读更多...