我正在尝试将基于Redis的应用程序迁移到新的哈希结构。这是由于存储量的增长(高达20GB),使其难以垂直扩展。
当前,我通过这种方式将数据存储在散列中:
p:{day}> {product id}:{product type}>值
带有不相关数据的示例。 (数据解释是在运行时完成的)
p:150719 ticket:price 7
ticket:sold 15
shoes:size 34
cactus:price 1
每天都有属于商场部门的产品,与每个部门的关系都在部门定义中指定,并且也存储在Redis中。一旦某人需要一个/几天的时间来检索产品,则后退代码会建立一个Dictionary<string, Dictionary<string, string>>
并带有通过HGET访问Redis的密钥。
目标是通过对每个部门进行隐式分离来使过滤器更加直观,以简化检索所需的所有信息。
p:{部门}:{day}> {产品ID}:{产品类型}>值
检索产品的方法与以前相同。正如预期的那样,每天检索单个密钥时访问速度更快,但是,当为多个部门检索产品时,访问速度较慢,甚至可以 Redis性能不佳(磁盘100%)。
如果更好地划分产品,为什么这种新结构会带来性能问题?有没有更好的方法来解决这个问题?