redis和postgresql一起开发,面对高并发写请求如何更新
ringa_lee
ringa_lee 2017-04-22 09:00:03
[Redis讨论组]

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

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
ringa_lee

如果是同时更新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没用过。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号