Php 缓存实体find()和findBy()结果

Php 缓存实体find()和findBy()结果,php,symfony,caching,doctrine-orm,redis,Php,Symfony,Caching,Doctrine Orm,Redis,我已经在Symfony2项目上实现了Redis缓存。现在我想缓存 为某些实体查找()和findBy()方法,并在Redis中为特定的TTL保留它们(比如一周或直到下一次刷新) 我的问题是: 您认为这样缓存实体是一种好做法吗 我正在考虑序列化结果并将其存储在一个键中,如下所示: 对于findBy(): 缓存\u键:默认值:实体:entityId 值:序列化对象 用于findBy(数组$criteria…) 关键字:序列化条件 值:序列化结果 我有一个onFlush()事件的事件监听器,它使

我已经在Symfony2项目上实现了Redis缓存。现在我想缓存 为某些实体查找()和findBy()方法,并在Redis中为特定的TTL保留它们(比如一周或直到下一次刷新)

我的问题是:

  • 您认为这样缓存实体是一种好做法吗
  • 我正在考虑序列化结果并将其存储在一个键中,如下所示:
  • 对于findBy():

    • 缓存\u键:默认值:实体:entityId
    • 值:序列化对象
    用于findBy(数组$criteria…)

    • 关键字:序列化条件
    • 值:序列化结果
    我有一个onFlush()事件的事件监听器,它使特定实体的缓存无效


    你认为这是个好办法吗?有什么我应该注意的吗?谢谢

    “计算机科学中只有两件难事:缓存失效和命名”。一定要记住你应用程序中的第一个。主键访问在DBs中是一个非常快速的操作,如果你在使用的字段上有索引,findOneBy也应该非常快。我不会诚实地使用结果缓存,除非我有一个真正的理由,因为速度的原因,我不一定需要缓存。做一些测试,速度确实是一样的。但是我想通过从Redis获取数据来减少数据库的负载。