Redis缓存包含数据源,用户和查询

时间:2017-01-11 21:03:50

标签: redis stackexchange.redis

我开始使用Redis作为缓存,我不确定应用程序的最佳结构。整体结构如下:

np.tril_indices

我需要做的一些事情是:

  1. 刷新数据源的所有内容(所有用户和所有查询)。
  2. 为特定用户刷新所有内容(e.x:我需要从数据源1和数据源2中删除用户1及其查询)。
  3. 树中列出的所有内容都是访问特定数据源上用户运行查询结果的关键的一部分。我是Redis的新手,并且一直在使用Hashes和Sets之间来回穿梭。

    选项1(套装):

    DataSource1 => user1, user2, user3, user4
    DataSource1:user1 => Query1, Query2, Query3
    DataSource1:user1:Query1 => Results
    

    刷新东西会很昂贵,因为我必须找到与user1或DataSource1匹配的所有密钥。

    部分选项2(哈希):

    users:user1 DataSource1:Query1 Results1 DataSource2:Query1 Results2
    

    仍然不确定刷新数据源或用户如何在这里工作。

    有没有人有其他想法/修改?

1 个答案:

答案 0 :(得分:1)

基于我将拥有DataSource集合的信息 - >用户和用户的哈希 - >查询。这样刷新用户只是删除哈希,并刷新数据源(你可能做得更少)循环遍历集合并删除用户,然后删除数据源 - >用户设置。

如果您使用第一个选项集,那么每次刷新用户的查询时它都会有更多操作,但这实际上取决于访问的数据。

此外,根据您为每个用户存储的查询数量,哈希值比集合更有效。