V2EX-最热主题 ( ) • 2021-12-04 16:17
noobmaster:

背景

  1. 需要提供一个接口用来查询数据在不在表里面(只需知道是否存在就行,不需要额外数据),每天的并发量是 300w 左右。
  2. 接口和数据库都是采用的 md5 作为 key, 允许数据实际存在但是返回不存在,但是数据不存在的信息必须是准确的(跟布隆过滤器误报的场景刚好相反)。
  3. 数据表有一亿行左右。

问题

  1. 不加缓存,直接查数据库。查询压力是不是过大了点?
  2. 用 redis 缓存存在数据的 md5 ,后续查询压力会逐渐落到 redis 上,用 set 类型是否是开销最小的?
  3. 跟布隆过滤器误报场景相反的数据结构?