各位观众,各位朋友,大家好!今天咱们来聊聊 Redis 里的“比特级”操作——SETBIT 和 GETBIT。 别看它俩名字短小精悍,背后蕴藏的威力可不小。 它们能让我们在 Redis 里面玩起“位图”,用极小的空间,解决一些看似复杂的问题。 准备好了吗?咱们这就开始! 一、 什么是位图? 听起来很高级,其实很简单 想象一下,你有一堵墙,上面可以贴很多张小纸条。 每张纸条只能写“是”或者“否”(1或者0)。 这堵墙,就是位图的一个简单模型。 在计算机的世界里,位图就是一系列连续的二进制位 (bit)。 每个位可以表示两种状态:0 或者 1。 关键在于,我们可以把这些位和实际应用场景中的某些东西对应起来。 举个例子: 用户签到: 假设你有一个网站,有很多用户。 你想知道每个用户每天有没有签到。 传统的做法,你可能需要一张表,记录每个用户每天的签到状态。 这样会消耗大量的存储空间。 但是,如果用位图,每个用户每天只需要 1 个 bit 来记录是否签到。 1 代表签到,0 代表未签到。 统计在线用户: 你可以把用户的 ID 作为位图的偏移量,如果用户在线,就把对应的位设置为 1,否则设置为 …