海量数据下,如何快速查找一条数据?

海量数据下,如何快速查找一条数据?

  1. 使用布隆过滤器,快速过滤不存在的记录。
    使用Redis的bitmap结构来实现布隆过滤器。
  2. 在Redis中建立数据缓存。
  • 以普通字符串的形式来存储(userId -> user.json)
  • 以一个hash来存储一条记录
  • 以一个整的hash来存储所有的数据
    存在的问题:
    • 缓存击穿:对不存在的数据也建立Key,这些key都是经过布隆过滤器过滤的,所以一般不会太多。
    • 缓存过期:将热点数据设置成永不过期,定期重建缓存;使用分布式锁。
  1. 查询优化
  • 按槽位分配数据
  • 自己实现槽位计算,找到记录应该分配到哪台机器上,然后直接去目标机器上找。
原文地址:https://www.cnblogs.com/pangqianjin/p/14618458.html