扫码关注官方订阅号
直接插到数据库肯定不行,效率太低。把数据放到缓存,隔一段时间以后同步缓存数据到数据库怎么样?
业精于勤,荒于嬉;行成于思,毁于随。
1.并行2.异步3.选择写入性能更好的中间件( redis,mongo)
中间缓存更新策略:write through , write back 具体看业务场景,对于数据实时性,数据完整性的要求
使用Redis的自增计数,设定一个阈值,每当计数整数倍于阈值时,写入数据库
long views = incr article:#articleId:views long limit = 10 if views > 0 && views % limit == 0 then // 入库 end
redis即可, 定期同步数据库(如果需要的话) 按时间比较方便。可以考虑 Jedis 的方法:
public Set<String> keys(final String pattern) {
checkIsInMultiOrPipeline(); client.keys(pattern); return BuilderFactory.STRING_SET.build(client.getBinaryMultiBulkReply());
}
使用redis的hash结构,存储帖子的浏览量,回复量等信息,定期做数据库的备份
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
1.并行
2.异步
3.选择写入性能更好的中间件( redis,mongo)
中间缓存更新策略:write through , write back 具体看业务场景,对于数据实时性,数据完整性的要求
使用Redis的自增计数,设定一个阈值,每当计数整数倍于阈值时,写入数据库
redis即可, 定期同步数据库(如果需要的话) 按时间比较方便。
可以考虑 Jedis 的方法:
public Set<String> keys(final String pattern) {
}
使用redis的hash结构,存储帖子的浏览量,回复量等信息,定期做数据库的备份