![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 78
DDF_YiChen
世上人才千千万,我在垃圾堆里站
展开
-
基于redis库存刷盘类相关业务实现总结
Redis循环刷库存类的抽奖业务场景原创 2022-10-21 14:34:47 · 1244 阅读 · 1 评论 -
【占坑】Redis key设计问题
Redis key的一些设计问题原创 2022-09-15 13:53:32 · 522 阅读 · 0 评论 -
redis bitset的滥用问题
redis bitset内存占用问题原创 2022-06-09 11:02:13 · 885 阅读 · 0 评论 -
被先更新数据库,再删除缓存问题数据不一致原因搞大了头
这篇文章不会去讨论是先删缓存还是先更新数据库这个问题,而是只聊其中一个,个人采用的,我觉得或者大部分人都觉得最优的一个的方案,即先更新数据库,再删除缓存然而再聊到这个方案的弊端的时候,充斥着大量的文章来解释这个方案带来的缓存不一致的原因如下,我看了半天尽量用自己理解下来的话说的清楚点。线程1执行查询操作, 未命中缓存,然后查询数据库得到db中结果。线程2执行更新数据库操作, 然后删除缓存, db中目前是最新值,但是和1查询的结果是不一致的。线程1用查询到的db的值来缓存到数据库,由于线程2删除缓原创 2021-03-11 16:05:31 · 1737 阅读 · 1 评论 -
如何避免扫描数据库且保证低延迟触发定时任务的一些思考
10. 定时用户自定义触发时间用户自定义触发时间,存在不固定,所以需要秒级的扫描来触发任务。但是如果直接扫表的话,会给数据库造成比较大的压力。可以考虑基于Redis的ZSet来处理明确年月日时分秒, 即希望在一个具体的时间执行,这种执行基本就是一次性。解决方案:把时间转换为时间戳, 然后使用zset的数据格式,key根据业务决定,将同一类的定时统一划分到一个keyvalue按需决定是否需要放入定时任务所需要的数据, score即为用户设置的定时任务触发时间的时间戳。定时任务扫描, 调用r原创 2021-03-10 16:08:11 · 572 阅读 · 0 评论 -
如何在SpringBoot中自定义redis的lua脚本实现
前言在使用redis的过程中,可能会需要自定义一些lua脚本来完成自己业务方面的实现,用来保证操作上的原子性。那么在SpringBoot中如何去实现这样一套逻辑呢?前置准备依赖不说版本的操作都是刷流氓<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <v原创 2021-03-04 10:27:09 · 835 阅读 · 2 评论