Python论坛  - 讨论区

标题:[python-chinese] [django]cache的原理

2006年12月08日 星期五 21:33

风向标 vaneoooo在gmail.com
星期五 十二月 8 21:33:36 HKT 2006

ÎÒһֱû¸ã¶®¹ØÓÚÍøÕ¾¼õ»ºÊý¾Ý¿â²éѯѹÁ¦¶ø²ÉÓõÄcacheµÄÔ­Àí

ÃèÊöͨ³£ÊÇ˵£¬²éѯ±È½ÏƵ·±¶øÊý¾Ý²»ÊÇÄÇôƵ·±¸Ä¶¯µÄ£¬²ÉÓÃcache£¬µÚÒ»´Î·ÃÎÊʱ½«Êý¾ÝÌá³ö£¬±£´æÔÚÄڴ棨»òÆäËûµÄµØ·½£©£¬´ËºóµÄ¶à´Î·ÃÎʾͷÃÎÊÕâ¸öÒѾ­Éú³ÉµÄ²éѯ½á¹û£¬²»ÔÙ·´¸´²éѯ¡£

²»¶®µÄ¾ÍÀ´ÁË£¬Í¨³£½Ó×Å»á˵£ºµ±¼ì²âµ½Êý¾Ý¿âÓиĶ¯Ê±£¬ÔÙÈ¥ÖØжÁÈ¡¡£

ÄÇ»º´æ½á¹ûÔõôȥ¼ì²âÊý¾Ý¿â¸Ä¶¯ÄØ£¿Èç¹ûÿ´Î±»Ìáȡʱ¶¼ÒªÈ¥ºË¶ÔÒ»ÏÂÊý¾Ý¿âÊÇ·ñÓиĶ¯£¬ÄÇÕâºÍÿ´Î¶¼È¥²éѯÊý¾Ý¿âÓÐʲôÇø±ðÄØ£¿ÕâÑù¾Íû²éѯѹÁ¦£¿

ÎÒµ¹ÊDZȽÏÀí½âdoubanµÄÄÇÖÖËÑË÷½á¹û»º´æ£¬Ã²ËÆÊǰѽá¹ûÌáÈ¡³öÀ´»º´æµ½Ä³´¦£¬È»ºó¶¨Ê±µÄÈ¥¸üУ¬°´ÕÕʱ¼äÀ´¸üлº´æ£¬²¢²»ÊǼì²âµ½Êý¾Ý¿â¸ü¸ÄºóÖØлº´æ¡£
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061208/14d3debd/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月08日 星期五 21:36

symbol lendcomcn在gmail.com
星期五 十二月 8 21:36:27 HKT 2006

一般是个缓存时间差的。

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月08日 星期五 21:46

yi huang yi.codeplayer在gmail.com
星期五 十二月 8 21:46:27 HKT 2006

>
> 不懂的就来了,通常接着会说:当检测到数据库有改动时,再去重新读取。
>
> 那缓存结果怎么去检测数据库改动呢?如果每次被提取时都要去核对一下数据库是否有改动,那这和每次都去查询数据库有什么区别呢?这样就没查询压力?
>
>
我倒是比较理解douban的那种搜索结果缓存,貌似是把结果提取出来缓存到某处,然后定时的去更新,按照时间来更新缓存,并不是检测到数据库更改后重新缓存。
>
>

是在更改数据库的时候把缓存删了,这样下次访问数据就会去数据库里取并同时又保存在缓存里了。
好像 django 的 cache api 只能提供缓存时间的管理,就是你说后面那种,而不提供缓存依赖的管理。



-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061208/b690f95c/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月08日 星期五 21:55

风向标 vaneoooo在gmail.com
星期五 十二月 8 21:55:21 HKT 2006

¸ÐлsymbolÐÖ£¬ÄãµÄ½âÊÍÈÃÎÒÁ˽âÁ˳£ÓõĻº´æ»º´æ·½Ê½
yi huang ÐÖ
ÏÖÔÚÎÒÇå³þ¶àÁË£¬Ô­À´Êǽ«»º´æºÍÊý¾Ý¿â¸ü¸Ä½áºÏÆðÀ´

ÕâÑù¿´À´»º´æ±È½ÏʱºòËÑË÷½á¹ûÕâÀà¸ü¸Ä²»Æµ·±£¬»ò²»¼±ÓÚÁ¢¿ÌÏÔʾ¸Ä¶¯µÄÊý¾Ý
ÀàËÆÂÛ̳topic list £¬reply list¾ÍÖ»ÓÐʵʱÌáÈ¡ÁË¡£


2006/12/8, yi huang <yi.codeplayer在gmail.com>:
>
>  ²»¶®µÄ¾ÍÀ´ÁË£¬Í¨³£½Ó×Å»á˵£ºµ±¼ì²âµ½Êý¾Ý¿âÓиĶ¯Ê±£¬ÔÙÈ¥ÖØжÁÈ¡¡£
> >
> > ÄÇ»º´æ½á¹ûÔõôȥ¼ì²âÊý¾Ý¿â¸Ä¶¯ÄØ£¿Èç¹ûÿ´Î±»Ìáȡʱ¶¼ÒªÈ¥ºË¶ÔÒ»ÏÂÊý¾Ý¿âÊÇ·ñÓиĶ¯£¬ÄÇÕâºÍÿ´Î¶¼È¥²éѯÊý¾Ý¿âÓÐʲôÇø±ðÄØ£¿ÕâÑù¾Íû²éѯѹÁ¦£¿
> >
> >
>  ÎÒµ¹ÊDZȽÏÀí½âdoubanµÄÄÇÖÖËÑË÷½á¹û»º´æ£¬Ã²ËÆÊǰѽá¹ûÌáÈ¡³öÀ´»º´æµ½Ä³´¦£¬È»ºó¶¨Ê±µÄÈ¥¸üУ¬°´ÕÕʱ¼äÀ´¸üлº´æ£¬²¢²»ÊǼì²âµ½Êý¾Ý¿â¸ü¸ÄºóÖØлº´æ¡£
> >
> >
> >
>
> ÊÇÔÚ¸ü¸ÄÊý¾Ý¿âµÄʱºò°Ñ»º´æɾÁË£¬ÕâÑùÏ´ηÃÎÊÊý¾Ý¾Í»áÈ¥Êý¾Ý¿âÀïÈ¡²¢Í¬Ê±ÓÖ±£´æÔÚ»º´æÀïÁË¡£
> ºÃÏñ django µÄ cache api Ö»ÄÜÌṩ»º´æʱ¼äµÄ¹ÜÀí£¬¾ÍÊÇÄã˵ºóÃæÄÇÖÖ£¬¶ø²»Ìṩ»º´æÒÀÀµµÄ¹ÜÀí¡£
>
>
>
>
> --
> http://codeplayer.blogspot.com/
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061208/ff9706e2/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月08日 星期五 22:00

yi huang yi.codeplayer在gmail.com
星期五 十二月 8 22:00:58 HKT 2006

搜了一下 cache dependency ,结果全是 .net 的。

"""
ASP.NET 2.0 offers you several ways to set a dependency between a cached
item and a file(s), another cached item(s) or SQL Server database table.
"""
"""
The SQL cache dependency sets up event notification from the database to
ASP.NET to invalidate cached data whenever the dependent tables change.
"""
django 本身不负责静态文件,所以管理缓存对文件的依赖就没啥必要了,而管理缓存对数据库表的依赖估计可能需要数据库提供特殊支持.
管理缓存与缓存之间的依赖倒是可行,就是不知道有没有什么实际意义 ...

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061208/ea3a51c2/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月08日 星期五 22:08

yi huang yi.codeplayer在gmail.com
星期五 十二月 8 22:08:19 HKT 2006

>
> 这样看来缓存比较时候搜索结果这类更改不频繁,或不急于立刻显示改动的数据
> 类似论坛topic list ,reply list就只有实时提取了。
>

其实像 .net 提供的那种对 SQL Cache Dependency
的管理,真的是比较完美,因为只有修改的时候才访问数据库,读取基本都在缓存中完成了,就算论坛这种更新频率下也还是可以大量减少数据库访问的,尤其是并发访问量大时,毕竟大部分操作是读数据。

不知道开源界有没有类似的好东东!

-- 
http://codeplayer.blogspot.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061208/241d84a4/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号