Maison >développement back-end >tutoriel php >数据访问层(DAL)如何优雅的协调存取缓存数据库(如redis)和持久数据库(如mysql)?
假设dal用php举例。
原来使用php单独操作mysql,现在需要压榨服务器,考虑增加一个redis,但同时面对两个数据源的存取策略产生了疑惑,希望帮助梳理一下。
用伪代码解释一下更好,谢谢。
假设dal用php举例。
原来使用php单独操作mysql,现在需要压榨服务器,考虑增加一个redis,但同时面对两个数据源的存取策略产生了疑惑,希望帮助梳理一下。
用伪代码解释一下更好,谢谢。
仅仅把redis当做缓存, 没必要写在DAL里吧(我不知道DAL的意思,只用过DAO、AR,ORM,听名字都是类似的东西?),就仅仅以缓存的形式去拓展它,比如继承你Cache类,如果还有用作永久存储需求,去继承DAL类,用redis给它实现出来,如果用做队列、或交集并集、计数器等等,同样去通过redis数据库去实现既有的接口。
最后用一个通用入口文件,通过构造方法调用不同的实现。
伪代码不会写,既然PHP直接贴开源项目吧Yii2-redis, 看看其中ActiveRecord.php与Cache.php,大概想法就是这样。