- 2024-11-14stringRedisTemplate 异步操作的问题记录
一、问题背景StringRedisTemplate使用stringRedisTemplate.opsForValue().set时,会出现set之后立马get获取值,发现获取不到set进去的值。二、问题原因1、在使用redisson的情况下,stringRedisTemplate.opsForValue().set操作会是异步操作,造成。你在set之后,立马get获取值的时候会
- 2024-09-21短视频全套源码,解决缓存击穿的常用方案
短视频全套源码,解决缓存击穿的常用方案一、设置合理的过期时间固定过期时间:为短视频全套源码中的热点数据设置一个合理的固定过期时间,可以有效地减少数据库的访问频率,但不能完全避免缓存击穿问题。随机过期时间:通过为短视频全套源码中的缓存设置不同的随机过期时间,可以使缓
- 2024-08-03Java通过redis实线多线程多用户操作时添加锁
背景由于项目中多出涉及同步数据,同步过程就是从设备上查询数据,将数据库中该设备数据删除,将新数据导入到数据库;多次同步数据或多用户操作,会导致数据库出现重复数据,例如,两个线程同时删除设备数据,同时导入数据,就会出现双倍数据;还有线程1正在导入数据,中途线程2将线程1导入数据之前删
- 2024-03-18springboot集成redis
1.导入spring-boot-starter-data-redis起步依赖2.在配置文件中,配置redis连接信息3.调用API(StringRedisTemplate)完成字符串的存取操作```//把token存储在redis中ValueOperations<String,String>operations=stringRedisTemplate.opsForValue();operations.set(token
- 2024-03-14Spring-Redis 使用
基本类型:String存储数据:stringRedisTemplate.opsForValue().set("key","value");获取数据:Stringvalue=stringRedisTemplate.opsForValue().get("key");设置数据的过期时间(单位为秒):stringRedisTemplate.expire("key",60,Tim
- 2023-12-0112.1日记
令牌桶算法这里使用Redis实现令牌桶算法,令牌桶算法具体细节可参考其他博客,这里不赘述,大致就是在一个时间段内,存在一定数量的令牌,我们需要拿到令牌才可以继续操作。所以实现思路大致就是: Redis中记录上次拿取令牌的时间,以及令牌数,每个手机号对应一个桶 每次拿令牌时
- 2023-07-23Redis的使用
1.Redis:客户端工具:jedis指令型工具,简单易用lettuceredis官方认可,opsForValue、opsForHashredission解决了分布式的各种问题比如锁redisdata官方推荐,封装了jedis、lettuce使用方式:1.引入包:<dependency><groupId>org.springframework
- 2023-07-13RedisTemplate 的简单使用
redisTemplate.opsForValue() 方法可以获得一个RedisString的操作类,通过该类可以执行一系列字符串类型数据的操作,例如获取、设置、删除数据等。//示例1:设置字符串类型的数据redisTemplate.opsForValue().set("key","value");//示例2:获取字符串类型的数据String
- 2023-06-27redis-分布式锁注意事项
lockKey:商品标识value:当前线程标识1.确保每把锁同一时间能且仅能上一次setnx(setifnotexists):当锁不存在时才上锁redisTemplate.opsForValue().setIfAbsent(lockKey,value)没加上锁需要返回错误码直接让其重试2.上锁成功后,需要在之后将锁释放redisTemplate.delete(l
- 2023-06-26redis分布式锁实现
@AutowiredprivateRedisTemplate<String,String>redisTemplate;//有死锁问题,设置锁的过期时间防止死锁publicvoidincr(){Booleanlock=redisTemplate.opsForValue().setIfAbsent("lock","1111"); //setnx,只有key不存在才能设置成功
- 2023-06-14谈论关于Redis产生的分布式ID获取为空问题
一:事故在项目测试中,遇到一个事件创建失败问题,追踪日志发现分布式ID的获取值为空,导致后续表写入异常。经排查锁定相关方法,具体方法经简化如下:@TransactionalpublicStringtestRedisTrans(){redisTemplate.setEnableTransactionSupport(t
- 2023-02-06Redis详解
Redis配置ymlspring:redis:host:82.157.248.243#host地址port:6379#地址端口号password:#密码database:
- 2022-11-04项目中Redis的使用
//从redis中获取疾病列表Objectredisdiseases=redisTemplate.opsForValue().get("diseases");if(redisdiseases!=null){logger.info("调用re
- 2022-10-27redis使用实例
//检查key是否存在,返回boolean值1.stringRedisTemplate.hasKey(Stringkey)//根据key获取缓存中value2.stringRedisTemplate.opsForValue().get(Objectkey)//截取key
- 2022-08-28Redis 分布式锁
概述单机架构下,一个进程中的多个线程竞争同一共享资源时,通常使用JVM级别的锁即可保证互斥,以对商品下单并扣库存为例:publicStringdeductStock(){synchronized