我python tornado 新手, 大家用什么来实现cache, 要用第三方python library 吗?

2013-02-20 06:12:50 +08:00
 skyangel3
6843 次点击
所在节点    Python
9 条回复
fansgentle
2013-02-20 09:54:48 +08:00
redis ?
felinx
2013-02-20 13:05:31 +08:00
cache有一个beaker可用,简单的cache其实很容易实现,我就自己写过一个。
skyangel3
2013-02-20 15:38:23 +08:00
@felinx cache 要控制内存, python可以直接写吗, 还是要用C写Extension.

beaker 不错, 现在可能暂时不用cache吧, 要是流量大了, 可能就用memcache 处理把,

还有好像beaker 跟python tornado 不兼容, 一个帖子看到的。
crossmaya
2013-02-22 00:21:10 +08:00
没看懂。。。
reorx
2013-02-22 20:45:36 +08:00
@felinx beaker 略重,而且好像是专门给 WSGI 框架设计的,用在 tornado 上有点不契合。

memcache 非常适合了,几乎也不用写多少额外的代码。lz 说的控制内存是什么意思?cache 的确需要内存控制,但肯定是由提供cache功能的程序来完成了,和 python 就没有关系了呀。另外,python 的内存控制是由语言自身的垃圾回收机制完成的,不能进行细致的控制,但可以通过 del 和 reassign 变量来触发,gc 模块来做一些设定。
btwo
2013-02-22 20:47:52 +08:00
我最近也向学习下tornado 有tornado +MYSQL的开源项目做参考吗?
wodemyworld
2013-02-23 00:43:09 +08:00
redis就可以
felinx
2013-02-23 14:13:49 +08:00
@btwo 我很早就写过一个,算比较早的用tornado做的开源项目了 https://bitbucket.org/felinx/poweredsites ,是站点 http://poweredsites.org 的源代码,里面就包含一个我说的自己写的cache。

@reorx 没错beaker和tornado不默契,所以我写个简单的玩。
tonyseek
2013-02-25 14:45:23 +08:00
如果用 redis 或者 memcached 之类的外部缓存,最好在内部增加一层用 weakref 的第二层缓存,第二层缓存可以用 LRU 来清理,防止缓存雪崩的问题。

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

https://www.v2ex.com/t/60809

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

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

© 2021 V2EX