mamasan
V2EX  ›  问与答

一个用户搜索历史记录的实现问题

  •  
  •   mamasan · Mar 5, 2021 · 1780 views
    This topic created in 1924 days ago, the information mentioned may be changed or developed.

    App 每个用户每次搜索的内容需要到服务器(方便切换设备登录帐号同步). 目标用户 50 万, 每用户 100 个搜索记录.

    1. 使用 redis 去保存. 用户 id 做 key, 搜索记录用 zset(去重, 按时间排序)
    2. 将所有的搜索记录保存进 es, es 使用用户 id 做 hash 分片.

    想请问下, 那种方案比较好呢? 或者是否有其他的方案呢? 用 redis 主要是担心,及时开了持久化, 是否会有用户数据丢失的问题. 用 es 怎么解决用户先搜索'A', 再搜索'B', 第三次再搜索'A', 这个时候, 历史记录只显示'A', 'B', 而不是'A', 'B', 'A'的问题

    1 replies    2021-03-05 14:52:24 +08:00
    wakzz
        1
    wakzz  
       Mar 5, 2021
    存 es,并且由自己指定记录 ID,例如以用户 id+搜索内容的 md5 做 id,来实现防重复的情况。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 13:44 · PVG 21:44 · LAX 06:44 · JFK 09:44
    ♥ Do have faith in what you're doing.