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

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

    1. 使用布隆过滤器,快速过滤不存在的记录。
      使用Redis的bitmap结构来实现布隆过滤器。
    2. 在Redis中建立数据缓存。
    • 以普通字符串的形式来存储(userId -> user.json)
    • 以一个hash来存储一条记录
    • 以一个整的hash来存储所有的数据
      存在的问题:
      • 缓存击穿:对不存在的数据也建立Key,这些key都是经过布隆过滤器过滤的,所以一般不会太多。
      • 缓存过期:将热点数据设置成永不过期,定期重建缓存;使用分布式锁。
    1. 查询优化
    • 按槽位分配数据
    • 自己实现槽位计算,找到记录应该分配到哪台机器上,然后直接去目标机器上找。
  • 相关阅读:
    gRPC初识
    Go操作MySQL
    Go语言操作Redis
    Markdown 教程
    Go操作MongoDB
    Go操作NSQ
    Go操作kafka
    Go操作etcd
    Go语言获取系统性能数据gopsutil库
    influxDB
  • 原文地址:https://www.cnblogs.com/pangqianjin/p/14618458.html
Copyright © 2011-2022 走看看