在Redis中哪种提取方式更有效?

时间:2015-08-11 06:43:06

标签: python django caching redis

嗨,我对Redis很新,目前遇到问题。我的问题是“我不知道哪种方式是更好的性能

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:2)

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

一般情况下,您无法关注way#1示例。为什么不? Redis在sql术语中没有任何用于查询数据的盒子解决方案。在大多数Redis数据结构中,您无法执行select something from somethere where criteria之类的操作。您可以为数据编写复杂地图/重写解决方案的LUA脚本 - 但不能在开箱即用。

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