zoukankan      html  css  js  c++  java
  • 海量数据下,如何快速查找一条数据?

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

    1. 使用布隆过滤器,快速过滤不存在的记录。
      使用Redis的bitmap结构来实现布隆过滤器。
    2. 在Redis中建立数据缓存。
    • 以普通字符串的形式来存储(userId -> user.json)
    • 以一个hash来存储一条记录
    • 以一个整的hash来存储所有的数据
      存在的问题:
      • 缓存击穿:对不存在的数据也建立Key,这些key都是经过布隆过滤器过滤的,所以一般不会太多。
      • 缓存过期:将热点数据设置成永不过期,定期重建缓存;使用分布式锁。
    1. 查询优化
    • 按槽位分配数据
    • 自己实现槽位计算,找到记录应该分配到哪台机器上,然后直接去目标机器上找。
  • 相关阅读:
    国王游戏
    选数
    双塔
    线段树
    树状数组及其他特别简单的扩展
    折半搜索
    VUE项目
    git_基本使用
    同源
    axios-使用
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14618458.html
Copyright © 2011-2022 走看看