一个问题,博客需不需要 Redis?

2016-09-25 13:53:25 +08:00
 lufficc

前几天写的laravel-blog被老外看到了,然后问我了一个问题:

Why do we need Redis for a blog system? If this is truly a fast blog it should be fast just using a database, no?

我简单回单了一句,为了缓存,提高速度,结果他不依不饶:

Depends on the use case. What are we caching? Indexed queries in a relational database are usually very fast. Adding Redis makes for a more complex stack so it must be motivated. Are we not just talking about saving lower single-digit milliseconds here? And to do that we add a hard dependence on Redis, making hosting more complex, error-prone and expensive. I love Redis and use it when it's appropriate. I also love relational databases because they solve complex use cases in a performant way. I asked why it is motivated to add Redis for a blog engine, and I just get a hand-wavy "for caching" as an answer. What do we need to cache and why can't that problem be solved without the need for a Redis cache?

回答了一长串,具体看这里:here 截图:.

所以到底要不要缓存,我该怎么回答?强大的 V 友帮帮我

12529 次点击
所在节点    程序员
104 条回复
ericls
2016-09-26 01:44:20 +08:00
@Clarencep 硬盘比内存快?
lincanbin
2016-09-26 01:57:35 +08:00
从可靠性看,架构越复杂,可靠性越低。
从用户体验看,几毫秒的差距很难被准确感知。
从可维护性角度看,加入 Redis 提升了复杂度。
从必要性看,系统访问量不一定需要这个。

你说提高速度的理由其实站不住脚,你应该说你爱怎么玩怎么玩。
leedstyh
2016-09-26 01:58:45 +08:00
我觉得吧,楼主把 project 发到 reddit ,显然是想做一个通用的产品来推广,而不是个人使用,所以 “试验田”的说法显然不可取。

其实对于 blog 来说,大多数的访问量不是很大,所以如果一定要 cache 的话,自己写代码, cache 到内存里,设置个若干天(比如 7 天)的过期时间。很简单的实现一下,不用那么多高级算法。

老外计较的没错,多一个软件,就多了一些运维的工作。

另外对于访问量大的,自己写 cache 就不如用 redis 了,楼主可以将 cache 部分做成个中间层,可以选择直接用内存 cache ,还是用 redis 做后端,让用户自己选择!
hobbyliu
2016-09-26 05:50:10 +08:00
我的 blog 也用了 redis,www.okrd.cn
wpzero
2016-09-26 07:17:06 +08:00
自己的 blog 肯定自己说了算。如果是个开源 bolg 项目,没必要加 redis ,如果可以做成静态生成可能更好。
kn007
2016-09-26 07:26:08 +08:00
https://kn007.net/

我对比较大的页面,使用 redis ,小页面全部 mc
lufficc
2016-09-26 08:18:48 +08:00
@leedstyh 谢谢大家建议,项目里已经去掉 redis 是必须的了, v 友们真强大
Clarencep
2016-09-26 09:01:33 +08:00
@ericls 硬盘当然没有内存快。但是你存 redis 里面的话, nginx/apache 又没法直接访问 redis ,还得经过 php 这样就慢下来了。 而生成静态页面后,让 nginx/apache 直接访问静态页面的文件其实会比走 PHP 要快。可以自己分别测一测两种方式哪种快。就我的服务器而言,还是静态文件比较快。
quericy
2016-09-26 09:07:57 +08:00
@luffylcc 既然是开源出来的项目,redis 作为可选项比较合适.因为使用者的场景可能是多样的,有的没多少访问量,有的访问量大,有的磁盘 io 捉急....
做成可选配置时,对于没 redis 使用需求的人来说,降级到 DB,节约了维护成本;对于需要使用 redis 的人来说,无需再定制修改项目代码,只是开启了相关配置就能撑住更多的流量请求
ppwangs
2016-09-26 09:16:34 +08:00
博客不都是最后做静态化么,这种一次性生成内容的东西,还要每次从 db 取东西么……
yumijie
2016-09-26 09:17:54 +08:00
有点杀鸡用牛刀
Perry
2016-09-26 09:20:53 +08:00
Agree to disagree
charove
2016-09-26 09:28:01 +08:00
@Clarencep 十秒打开。
solaya
2016-09-26 09:33:28 +08:00
我自己写的小玩意 还加了个 cluster 但没开源
lufficc
2016-09-26 09:42:50 +08:00
@Clarencep 我试试去
lufficc
2016-09-26 09:43:37 +08:00
@ppwangs 自己搞过静态的, hexo ,但,总感觉不灵活。。。。。。
lufficc
2016-09-26 09:44:17 +08:00
@solaya 可以考虑开源让大家学习下😂
zhangv
2016-09-26 09:45:36 +08:00
觉得这本身就是一个伪问题,如果没有答案或者答案很多,还能称为“问题”吗?
xiaoyu9527
2016-09-26 10:02:40 +08:00
回答一句 interesting!
ppwangs
2016-09-26 10:12:58 +08:00
@luffylcc 我的意思是动态页面静态化,并非伪静态。内容完成以后,直接生成 html 文件, nginx 直接访问这个 html ……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/308824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX