python - Redis 中哪种抓取方式效率更高?

标签 python django caching redis

您好,我是Redis 的新手|目前面临一个问题。我的问题是“我不知道哪种方式性能更好

方式#1:将所有数据缓存到 Redis 然后查询到它(我不知道是否可以查询到 Redis?如果可能如何?)

例如在下表中将所有数据缓存到单个键(通过这种方式在我的表中我们有 1 个键)然后查询具有相同城市的用户。

方式#2:将具有相同城市的所有用户缓存在单独的键中(通过这种方式在我的表中我们有 4 个键),然后分别获取每个键。

enter image description here

最佳答案

在单独的 Key 中缓存具有相同城市的所有用户 - Redis 方式。快速插入,快速获取大量内存消耗或一些数据冗余的成本。

一般来说,您不能遵循您的方式#1 示例。为什么不? Redis 在 sql 术语中没有任何用于查询数据的内置解决方案。在大多数 Redis 数据结构中,您不能执行类似select something from somether where criteria 之类的操作。您可以为数据上的复杂 map /redus 解决方案编写 LUA 脚本 - 但不是开箱即用。

你应该记住,每次你想说 Join this and this data 你应该理解 - 你只能在客户端应用程序空间或 redis LUA 脚本中执行此操作。是的,您有一些类型的 join 能力与 ZSET 和 SET 的能力,但这不是您所需要的。

关于python - Redis 中哪种抓取方式效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31934892/

相关文章:

python - 用我自己的数据进行tensorflow对象检测,你能帮我吗?

python - 在 Django 中到达/下载文件时,我应该如何执行权限检查?

java - 使用 HTTP 响应 header 强制通过 HTTPS 对 Internet Explorer 进行无缓存?

ruby-on-rails - Redis模型缓存,什么时候调用items_helper中的fetch_items?

caching - Redis 缓存使用 volitile-lru 抛出 OOM 错误

python - 如何编写一个安装脚本,将除 Django 应用程序之外的所有内容复制到 dist-packages 中?

python - 有什么方法可以正确打印 OrderedDict?

python - 在 Django Web 应用程序中运行异步 Python 代码

django - 为什么我们需要 uwsgi 来在 nGINX 上托管 Django

Python Reportlab 段落不跨越下一页