论坛首页 Java企业应用论坛

帖子 博客等资源点击量缓存杀手级解决方案

浏览 21372 次
精华帖 (0) :: 良好帖 (9) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-07-24  
xly_971223 写道
srdrm 写道
量或许是很大, 但一天之内有hit的贴子量不会是这种100w量级的, 10w量级的贴子更新数我认为对于网站来说不小了. 刷到数据库不一定要同时刷, 这个不要求即时的,可以悠着点来,怎么悠怎么来,只要在一个合理时间内完成就行


sorry 怪我前面没讲清除
这里缓存的不仅仅是帖子的点击量,还包括博客 相片 新闻 圈子 等等吧 所有这些点击量都是缓存在一起的
对一般的网站这个量还是不小的


楼主兄弟,用缓存的原因能给我解释一下吗?我非常好奇!

点击量那个问题,楼上各位都提出了方案。
0 请登录后投票
   发表时间:2009-07-24  
superscorpio 写道
xly_971223 写道
srdrm 写道
量或许是很大, 但一天之内有hit的贴子量不会是这种100w量级的, 10w量级的贴子更新数我认为对于网站来说不小了. 刷到数据库不一定要同时刷, 这个不要求即时的,可以悠着点来,怎么悠怎么来,只要在一个合理时间内完成就行


sorry 怪我前面没讲清除
这里缓存的不仅仅是帖子的点击量,还包括博客 相片 新闻 圈子 等等吧 所有这些点击量都是缓存在一起的
对一般的网站这个量还是不小的


楼主兄弟,用缓存的原因能给我解释一下吗?我非常好奇!

点击量那个问题,楼上各位都提出了方案。


减少访问数据库次数
0 请登录后投票
   发表时间:2009-07-25  
缓存内存+定时更新怎么样啊
0 请登录后投票
   发表时间:2009-07-25   最后修改:2009-07-25
xly_971223 写道
wulinux 写道
xly_971223 写道
wulinux 写道
用JMS解决呀。
当前端更新了以后, 把变化的内容用JMS的形式发送到后台。后台线程接受到后,更新数据库。 这个过程不需要同步,可以允许有滞后。这样可以非常有效的解决你数据库服务器的压力。数据库更新成功后发一个JMS到缓存系统,把原来的数据清除掉,重新从数据库读出数据。我觉得这样可以解决你的问题了。




jms确实可以降低服务器的瞬间压力,实际上却没有节省资源
我的方案更强调的是节省资源


你的提法确实可以节省资源,但是你可以保证你的机器不崩溃吗? 如果系统死了,你前面9次修改的东西都丢失了,你的用户是否可以接受呢?

说的没错 这也是我一直担心的问题,要解决这个问题就扯出缓存事务了  那问题就搞复杂了

另外 像点击量这种不是特别重要的数据有点偏差也是可以的


我们做程序的讲究的是思想的严密性,像你说的不是特别重要的数据有点偏差也是可以的。这种想法是绝对不能存在的。假设我们将你的方案移植到银行或者金融类的程序开发中,不是特别危险了?什么是程序设计?一个好的程序至少应该在设计上是严密的,而不是以一种侥幸的心理以阿Q式方式去安慰自己,这种情况是很少存在的。做程序员千万要杜绝这种思想的出现。
0 请登录后投票
   发表时间:2009-07-25   最后修改:2009-07-25
superscorpio 写道
xly_971223 写道
srdrm 写道
用得着这么复杂吗, 我定个时间, 每隔30分钟将所有贴子的hits缓存刷到数据库中, 或者10分钟. 或者, 任意定个时间, 至少能解决绝大部分问题

如果缓存了10w帖子 假设有1w个发生了变化
你刷到数据库看看 1W条sql几乎同时到服务器不搞死才怪

10w对一个网站来说是非常小的数目了 如果是100W 1000W呢?



你怎么会缓存那么多帖子呢? 我觉得这才是最大的不合理!


这种情况还是存在的,前段时间百度贴吧里面炒的很热的一篇帖子“贾君鹏你妈妈喊你回家吃饭”在短短的几天时间里回帖就达到了30多万。可想而知互联网这玩意儿什么情况都是会存在的。我们更不应该以合理不合理去思考互联网。
0 请登录后投票
   发表时间:2009-07-27  
luoli-17 写道
xly_971223 写道
wulinux 写道
xly_971223 写道
wulinux 写道
用JMS解决呀。
当前端更新了以后, 把变化的内容用JMS的形式发送到后台。后台线程接受到后,更新数据库。 这个过程不需要同步,可以允许有滞后。这样可以非常有效的解决你数据库服务器的压力。数据库更新成功后发一个JMS到缓存系统,把原来的数据清除掉,重新从数据库读出数据。我觉得这样可以解决你的问题了。




jms确实可以降低服务器的瞬间压力,实际上却没有节省资源
我的方案更强调的是节省资源


你的提法确实可以节省资源,但是你可以保证你的机器不崩溃吗? 如果系统死了,你前面9次修改的东西都丢失了,你的用户是否可以接受呢?

说的没错 这也是我一直担心的问题,要解决这个问题就扯出缓存事务了  那问题就搞复杂了

另外 像点击量这种不是特别重要的数据有点偏差也是可以的


我们做程序的讲究的是思想的严密性,像你说的不是特别重要的数据有点偏差也是可以的。这种想法是绝对不能存在的。假设我们将你的方案移植到银行或者金融类的程序开发中,不是特别危险了?什么是程序设计?一个好的程序至少应该在设计上是严密的,而不是以一种侥幸的心理以阿Q式方式去安慰自己,这种情况是很少存在的。做程序员千万要杜绝这种思想的出现。

你说的太教条主义了,没错做程序员的要讲究的是思想的严密性,但是要结合需求来考虑,从需求来说,有的要求不能有任何误差,比如银行,但是显然lz的这种需求就是不要求绝对正确的,往往有很多业务,从技术上就是无法做到绝对准确的,所以你说的一大堆未免教条主义了
0 请登录后投票
   发表时间:2009-08-12  
我晕了,有那么复杂吗??


把几千条insert放在一个transaction,1次commit不就完事了么?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics