摘要:
BitMap(2.2 版新增) Bitmap,即位图,是一串连续的二进制数组(0和1),可以通过偏移量(offset)定位元素。BitMap通过最小的单位bit来进行0|1的设置,表示某个元素的值或者状态,时间复杂度为O(1)。 由于 bit 是计算机中最小的单位,使用它进行储存将非常节省空间,特别 阅读全文
posted @ 2023-05-20 22:07
残城碎梦
阅读(252)
评论(0)
推荐(0)
摘要:
分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。 本文就介绍Redis实现分布式锁的正确方式。 可靠性 首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会 阅读全文
posted @ 2023-05-20 21:51
残城碎梦
阅读(100)
评论(0)
推荐(0)
摘要:
JDK自带DelayQueue 是一个支持延时获取元素的阻塞队列, 内部采用优先队列 PriorityQueue 存储元素。 元素必须实现 Delayed 接口;在创建元素时可以指定多久才可以从队列中获取当前元素,只有在延迟期满时才能从队列中提取元素。 DelayQueue属于排序队列,它的特殊之处 阅读全文
posted @ 2023-05-20 16:19
残城碎梦
阅读(312)
评论(0)
推荐(0)
摘要:
我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。 随着 Redis 版本的更新,后面又支持了四种数据类型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3 阅读全文
posted @ 2023-05-20 16:18
残城碎梦
阅读(72)
评论(0)
推荐(0)
摘要:
延迟队列的应用 根据用户行为在特定的时间点向用户推送相应的提醒消息,比如以下业务场景: 在用户点击充值项后,半小时内未充值,向用户推送充值未完成提醒。 在用户最近一次阅读行为2小时后,向用户推送继续阅读提醒。 在用户新注册或退出应用N分钟后,向用户推送合适的推荐消息。 … 上述场景的共同特征就是在某 阅读全文
posted @ 2023-05-20 14:45
残城碎梦
阅读(1035)
评论(0)
推荐(0)