《Redis深度历险》学习笔记:HyperLogLog&布隆过滤器
HyperLogLog
- 通常用来统计一个集合中不重复的元素个数的方法叫做基数计数(cardinality counting)。(eg. 统计页面 UV)
- HyperLogLog 是 Redis 的高级数据结构,用来解决使用 set 结构进行基数计数时占用空间过大的问题。
- HyperLogLog 统计的标准误差为 0.81%
对于开关 / 签到类型的业务数据,可以考虑采用 bitmap
(即位图)的数据结构进行存储
位图的最小单元是 bit
,每个 bit 的取值只能是 0 或 1,如下图所示:
Redis 字符位顺序与其 ASCII 码二进制值位顺序相反,多个字符会自动扩容连接在一起:
setnx
(set if not exists) 指令,调用 del
指令释放:SETNX mykey "Hello"
del mykey
6379
是「MERZ」一词在手机九宫格键盘上对应的数字位置。「MERZ」在 Antirez 的朋友圈语言中是「愚蠢」的代名词,它源于意大利广告女郎「Alessia Merz」在电视节目上说了一堆愚蠢的话。对摄影评论并不是热衷,不过在这本饭泽耕太郎《写真的思考:摄影的存在意义》里,作者传达了一个容易被忽视的审美角度——有的摄影作品是“以偶然的方式处理偶然,并将其必然化”。这里所说的偶然,毫无疑问指的是摄影行为本身的偶然,而所谓的必然,其实是摄影行为在凝结为摄影作品后,呈现给观众的必然。将「偶然」作为摄影行为的动机,是刻意扰乱意识性的控制、主动地选取错乱的过程。这在摄影创作中并不少见,但我们往往习以为常,而忽略了它作为摄影动机的深刻内涵。
……