请问Redis放在控制器还是模型层? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

请问Redis放在控制器还是模型层?

2016-03-09 09:02:51 1844 1

在实际项目中,Redis大部分情况下应该放在控制器还是模型?

目前只做过两种方案:

控制器中:

大致的逻辑如下(不要纠结于方法名称):

class UserController extends Controller {

    public function index()
    {
        $userRedis = new UserRedis();
        
        if (!$userInfo = $userRedis->find(['id' => 1000])) {
            $user = new User();
            $userInfo = $user->find(['id' => 1000]);
            
            $userRedis->save($userInfo);
        }
        
        return $userInfo;
    }

}

在这种情况下,模型还是独立存在的,数据库模型依然直接读取数据库,Redis模型读取Redis,两者互不影响,控制器从中协调。

模型:

class UserModel extends Model
{
    public function find($conditions)
    {
         $userRedis = new UserRedis();
          
         if (!$userInfo = $userRedis->find($conditions)) {
            $userInfo = $this->find($conditions);            
            $userRedis->save($userInfo);
        }
        
        return $userInfo;
    }
}

在这种情况下,控制器只需要调用一次接口方案,而无需关心内部实现,整个数据逻辑交给模型来处理。

在项目中实际用过Redis的朋友路过顺便分享一下自己的经验,大家集思广益一下。^_^

取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 18:55:17

    一般还是说放到模型层,然后封装一个方法,业务层在调用的时候,直接去调取方法就好了,而不用想着再去做缓存的事情。因为缓存在模型层都帮忙给做了。

    0 0
相关问答

1

回答

redis多对多模型设计问题

2016-02-20 17:29:47 3952浏览量 回答数 1

1

回答

请问我想store.mode=redis这种模式试试,我redis是3主3从的集群,应该如何配置呢?

2022-11-07 16:54:47 55浏览量 回答数 1

0

回答

阿里云集群版 redis 代理模式,是不是不支持 flushdb?

2022-08-24 18:00:24 181浏览量 回答数 0

1

回答

大佬们想问个问题,现在Flink 可以sink到 加密的redis集群了吗?

2022-08-04 10:24:00 141浏览量 回答数 1

1

回答

flink -redis sink 可以sink 到集群吗?

2022-08-01 14:08:41 262浏览量 回答数 1

0

回答

seata版本1.5.1数据源支持redis集群吗?

2022-07-11 17:17:57 351浏览量 回答数 0

0

回答

redis-shake这个集群redis怎么配置的呢?

2022-07-04 09:26:49 209浏览量 回答数 0

1

回答

redis集群方式中的主从复制是什么意思啊?

2022-04-03 22:29:05 585浏览量 回答数 1

1

回答

Redis的集群元数据的维护有那些方式?

2021-12-12 15:58:16 334浏览量 回答数 1

1

回答

redis有哪些集群方式?

2021-12-09 21:39:35 193浏览量 回答数 1
+关注
文章
问答
问答排行榜
最热
最新
相关电子书
更多
Codis 集群演化与 Redis 异步迁移
立即下载
Redis Cluster的基本原理
立即下载
最大化阿里云OpenAPI能力的方法和实践
立即下载