redis和postgresql一起开发,面对高并发写请求如何更新

 书友51676198 发布于 2022-10-25 07:13

是用代码分别更新到redis和postgresql数据库(谁先谁后)还是只更新到redis,然后通过队列异步更新到数据库?如果有详细的做法更好,谢谢!PS:有人谁用过redis-fdw吗?

1 个回答
  • 如果是同时更新redis和数据库的话实际就是缓存更新策略问题吧。说说我的看法咯,算抛砖引玉吧:
    这类问题常用两种策略:
    1.写缓存时更新:这是指DB写成功以后就更新缓存。这种策略能减少穿透,但容易引起数据的不一致。
    2.读缓存时更新:这是指DB写成功以后只删除缓存,等到需要读取时再重建缓存。这种策略一致性可以保证,但穿透大,容易给DB造成压力。

    (搜了一下发现缓存更新的模式有很多,上面说的两种只是我所知
    1.Write-through 立即写
    2.Write-behind 后写 先写缓存,将写事件放入Queue,再写数据库
    3. Eviction Policies 驱逐策略 缓存更新策略 直接删除缓存中数据,等下次读取时更新。
    4. Replication 复制
    5. Peer-To-Peer (P2P)

    如果是只更新redis再异步更新到数据库的话缓存宕机后数据不好重建,如果你的数据不需要严格准确但需要访问迅速的话倒是可以考虑这样玩,比如页面访问人数之类。

    redis-fdw没用过。

    2022-10-26 14:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有