开发者社区> 问答> 正文

flask使用redis做缓存,如何与数据库同步或者定期更新到数据库?

打算用redis来做缓存,但是之前没弄过类似的东西,有个疑惑就是用什么东西来让redis里的数据更新到mysql或者sqlite数据库中去呢?
是需要自己写脚本定期执行更新?还是redis能自带一些功能?
我打算每10分钟或者一定的时间内,或者每天固定的时候比如半夜2点,把redis的数据更新到mysql或者sqlite中。 有什么简单的办法嘛。

展开
收起
落地花开啦 2016-02-27 15:51:08 6139 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    对于你的情况,如果你可以接受定期从redis导入到mysql,那基本上表示你的业务就不需要mysql,因为redis不仅仅是缓存,塞给它的数据是持久化到硬盘的,你下次直接从redis读出来就行了。
    至于缓存,一般都是读缓存(写缓存实现起来很罗嗦,而且也不那么靠谱),与数据库的同步策略需要添加到自己的代码逻辑里。
    假设你原先的代码逻辑是这样:
    $data = get_from_db($condition);
    现在需要将get_from_db改成这样

    function get_from_db($condition)
    {
        $data = get_from_cache($condition);
        if (!$data)
        {
            $data = get_from_db_directly($condition);
            set_to_cache($condition, $data);
        }
        return $data;
    }
    2019-07-17 18:48:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ApsaraDB for Redis——与创客同行 立即下载
微博的Redis定制之路 立即下载
云数据库Redis版的开源之路 立即下载