oschina首页的cache是如何刷新的?

核桃博客 发布于 2012/02/13 10:19
阅读 681
收藏 4

看了下发表帖子之后,刷首页不是立刻可以看到,大约过10-20s可以看到帖子?

请问下首页cache是如何刷新的?

谢谢

加载中
0
红薯
红薯
缓存都会有个自动失效时间设置啊:)
0
10书生
10书生

引用来自“红薯”的答案

缓存都会有个自动失效时间设置啊:)
Cache内容失效后,新的请求就会读到数据库里最新的?
红薯
红薯
是的
0
核桃博客
核桃博客

引用来自“红薯”的答案

缓存都会有个自动失效时间设置啊:)

我没搞过缓存-_-

再详细问下,假设系统起来的时候首页缓存放了10篇文章,

1. 是给每篇文章设置自动失效时间么?相当于是一篇一篇逐步失效,不是整体失效了?

2.假设10篇里面1篇失效了,缓存产品(假设ehcache)会把这篇文章从缓存中删除,然后去数据库里面取一篇新的? 这个新的取哪个是怎么定的?

3. 假设用户发表了一篇文章,为什么不在插入数据库完成之后把这篇文章刷到缓存中?

多谢!

核桃博客
核桃博客
多谢:)
雷志伟
雷志伟
一般分"块", 比如动蛋是一块, 新闻是一块....
0
红薯
红薯

引用来自“核桃博客”的答案

引用来自“红薯”的答案

缓存都会有个自动失效时间设置啊:)

我没搞过缓存-_-

再详细问下,假设系统起来的时候首页缓存放了10篇文章,

1. 是给每篇文章设置自动失效时间么?相当于是一篇一篇逐步失效,不是整体失效了?

2.假设10篇里面1篇失效了,缓存产品(假设ehcache)会把这篇文章从缓存中删除,然后去数据库里面取一篇新的? 这个新的取哪个是怎么定的?

3. 假设用户发表了一篇文章,为什么不在插入数据库完成之后把这篇文章刷到缓存中?

多谢!

前两个问题你去用一下 ehcache 就会明白的:)

3. 发表文章后添加到缓存,这个操作的复杂度太高了,没有必要,因为不需要那么实时

核桃博客
核桃博客
@liangcoder : 谢谢!
10书生
10书生
ehcache提供了比较完善的缓存策略并支持丰富的缓存机制。e.g. 1. 可配置的缓存内容失效时间和失效策略。 2. 对象序列化到硬盘 3. 优化过的内存管理。 自己写map cache对于小数据量,小并发量还能应付一段时间。
核桃博客
核桃博客
@红薯 : 多谢!
红薯
红薯
@核桃博客 : ehcache 的原理也是如此,只不过它自己有一些线程用来删除一些过期的缓存对象
核桃博客
核桃博客
其实是这样,在用ehcache之前, 以前我自己的cache是自己写了个类,里面放了一些hashmap,然后每次更新数据的时候把对应的hashmap全部刷了下; [数据量比较小], 搞首页cache这样固定长度的cache,本来是想自己搞个list,然后每次有更新的时候把新的内容放到list里面,然后把最后一个删掉,不知道这样和用ehcache这些有啥区别?或者ehcache有啥好处?
下一页
0
雷志伟
雷志伟

引用来自“liangcoder”的答案

引用来自“红薯”的答案

缓存都会有个自动失效时间设置啊:)
Cache内容失效后,新的请求就会读到数据库里最新的?
这种思路清晰, 实现简单. 很适合大多数情景.

在多并发下, 数据库可能会有瞬间压力过大.
Andre.Z
Andre.Z
我记得红薯以前说过用2次cache的,缓存失效之后,后台自己去更新,用户还是看到以前的缓存页,这样用户体验也好,你找找呗
返回顶部
顶部