我正在做一个课堂项目,我为Redis设置了大约150,000个哈希,其中的键是格式为"2008-08-29T15:09:06.493"时间戳,字段为TagTitle 我想找到同一年所有带有类似标签的钥匙。

我在做KEYS *2008*获得与一年所有哈希值2008 ,但我不知道我怎么会检查是否有散列特定标签,并递增计数器。 我该怎么做呢?

===============>>#1 票数:1 已采纳

因此,这里有三点:

  1. 数据设置的方式对于您要执行的操作非常低效。 您的要求可以完成(请参见第3点),但是如果您想以任何规律性进行操作,我强烈建议您以不同的方式存储数据。 例如,如果您要进行大量时间切片,则以键为时间戳的排序集是一个不错的选择。

  2. 绝对不要在类似于生产环境的任何环境中使用KEYS * 我知道这只是一个班级项目,但我真的建议您摆脱使用KEYS *进行除离线即席挖掘之外的任何事情的习惯。

  3. 现在警告已不复存在,您可以通过几种方法来执行此操作。 最简单(但不是最有效)的方法是,使用Redis Py之类的脚本语言通过Python之类的脚本语言连接到Redis服务器,对每个哈希使用HGETALL来抓取所有内容,然后根据需要在Python中过滤掉它们。

如果您必须坚持使用Redis来执行此操作,或者希望在保留当前数据结构的同时提高查询效率,请使用Lua脚本 您可以让它运行KEYS 2008*语句,然后在保持运行计数器KEYS 2008*过滤所有结果的标记。 在脚本末尾,您只需返回计数器。

  ask by Amru E. translate from so

未解决问题?本站智能推荐:

关注微信公众号