注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

Sina App Engine文档提到的两个缓存库  

2010-08-23 20:57:28|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

新浪也推出了App Engine了:http://sae.sina.com.cn/
不像Google的App Engine,他那个是使用php作为编程语言的。我看了一下他的说明,好像没什么地方免费版可以用多久啊,有什么限制啊等等。注册的时候要邀请码和手机,不是Google的标明免费的有多少免费带宽等等。感兴趣的可以去时一下吧,我就没空去试了,估计他们策略还没定,一会就变也说不定!

我大概看了一下他们的文档,看到了两个缓存库,就去大概看了一下。

1、Memcached (http://memcached.org/
   这个好像非常有名,经常看到,应该很多大型网站都会使用吧。。就是把sql等比较慢的磁盘读取操作转变成对内存访问的操作,可以显著的提高速度。它提供一个key-value 的存储策略,你可以把字符串、对象等缓存起来。还有他是支持多台服务器的负载均衡的。应该是一个比较成熟的产品了,所以很多人都会用它。
比如他文档自带的一个例子:

# Don't load little bobby tables   sql = "SELECT * FROM user WHERE user_id = ?"   key = 'SQL:' . user_id . ':' . md5sum(sql)   # We check if the value is 'defined', since '0' or 'FALSE' # can be    # legitimate values!   if (defined result = memcli:get(key)) {           return result   } else {           handler = run_sql(sql, user_id)           # Often what you get back when executing SQL is a special handler           # object. You can't directly cache this. Stick to strings, arrays,           # and hashes/dictionaries/tables           rows_array = handler:turn_into_an_array           # Cache it for five minutes           memcli:set(key, rows_array, 5 * 60)           return rows_array   }

使用Memcached 来缓存sql的结果,这个应该是典型应用吧,通过几分钟缓存策略,虽然会导致一小会的数据实时性问题,不过影响不是很大,却可以得到大量的性能提升。当然你也可以用来缓存多条sql语句的结果、最后的对象等等,只要你愿意,应该可以缓存任何东西。

另外根据新浪微博技术经理的介绍,在比较热门的访问前价格mutex的同步访问应该进一步减少底层sql调用提高性能。还有mencache的划分等可以看http://news.csdn.net/a/20100726/277274.html

2、 redis https://code.google.com/p/redis/

有点类似memcached的key/value存储系统,不过它也有它的特点:
1、可以永久保存数据,已经同步保存到磁盘,不过服务器之间的数据同步等。

2、原子操作。所有修改、更新、计数等操作都能保证是线程安全的。

3、主从机备份,热备份等。

新浪的app Engine里面好像是用来做什么消息队列的,应该就是看到他的同步特性吧。


总结:

    这两个都是非常强大的库,支持的编程语言都非常的多,基本包含常用的编程语言了,如果自己的网站或者系统有这种需要的时候都可以使用的吧。感觉Redis的特性更多一些。
    不过这个怎么这种key/value存储模型看着有点眼熟,好像和CSDN上次专门介绍的NoSQL技术有点类似,去搜索了一下,果然wiki里面NoSQL介绍都提到上述两个产品了,只是我孤陋寡闻而已。Redis表现的更像数据库一些。有想详细了解的自己去看一下文档吧。

  评论这张
 
阅读(478)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017