
Redis
文章平均质量分 81
Redis
执键行天涯、
国企程序猿 5年工作经验
展开
-
【JAVA高级】如何使用Redis加锁和解锁(二)做分布式锁案例(防误删锁)
在Java中,如果你使用Spring Boot并集成了Spring Data Redis,那么redisTemplate是一个常用的操作Redis的模板类。unlock方法则使用了一个Lua脚本来执行解锁操作,该脚本首先检查Redis中存储的锁的值是否与客户端提供的值相匹配,如果匹配则删除锁。如果不匹配,则返回0,表示解锁失败(非锁的持有者)。使用Redis中加锁和解锁的开发中,解锁需要验证当前客户端是否是锁的持有者,然后再解锁,具体怎么验证,下面是一个示例(使用redisTemplate来实现)原创 2024-09-26 17:50:16 · 984 阅读 · 9 评论 -
【JAVA高级】如何使用Redis加锁和解锁(一)、Lua脚本执行原理及流程
在Redis中加锁和解锁通常是通过Redis的原子性命令来实现的,以保证操作的原子性和线程安全。原创 2024-09-26 14:47:48 · 1728 阅读 · 0 评论 -
【JAVA高级】 redis分布式双重加锁(业务校验:防止接口并发调用时数据重复)
@TOC]背景:在日常开发过程中,遇到了一个需求,比如有一个对象User(name,age、sex)有三个属性,现在需要用户新增接口中,防止此接口被多人同时请求访问,产生了姓名&年龄相同的,还有年龄&性别相同的数据;原创 2024-09-26 12:34:37 · 1703 阅读 · 2 评论 -
【Redis】工作中使用Redis的10种场景
但使用缓存加速的业务场景,需要注意一下,可能会出现:缓存击穿、穿透和雪崩等问题,感兴趣的小伙伴,可以看看我的另一篇文章《烂大街的缓存穿透、缓存击穿和缓存雪崩,你真的懂了?因此,可以考虑用一个定时任务,异步将分类树的数据,直接缓存到Redis当中,定义一个key,比如:MALL_CATEGORY_TREE。bitmap 是二进制的byte数组,也可以简单理解成是一个普通字符串。这样后面该用户访问其他接口的时候,会直接从Redis中查询用户登录状态,如果可以查到数据,说明用户已登录,则允许做后续的操作。转载 2024-07-25 17:28:52 · 73 阅读 · 0 评论 -
【Redis】关于redisTemplate.opsForValue().set数据本地redis客户端库中查不到问题的解决记录,或者查到的key或者value是乱码
二进制串,所以通过get name3 未拿到数据,由于我制定了向redis中存储的时候了,key的序列化的方式了,所以这个里面的key 直接就以name3 的形式存储到了redis中,所以此时通过 get name3 能读取到了数据;但是随之另外一个问题出现了,key序列化之后,通过key:name3 能读取到数据了,而且读取到的数据在console中显示正常。然后在本地redis库中,通过key值读取maven工程中刚才通过redisTemplate存储的数值时,发现获取不到,于是我实验了一番。原创 2024-07-05 10:14:45 · 1790 阅读 · 0 评论 -
【Redis】Redis自动序列化和手动序列化的区别(存储结构、内存开销,实际写法)
【代码】【Redis】真行,原来是这样啊!--Redis自动序列化和手动序列化的区别(存储结构、内存开销,实际写法)原创 2024-07-05 15:42:50 · 301 阅读 · 0 评论