使用MongoDB
Oct 2 2014参考
简介
MongoDB是一个流行的NoSQL数据库程序,MongoDB使用起来比较像关系数据库,比较容易上手,由于使用BSON(一种二进制的json)格式数据,所以能使用python原生的字典数据类型来存储,相比MySQL操作跟简单。
MongoDB是一个流行的NoSQL数据库程序,MongoDB使用起来比较像关系数据库,比较容易上手,由于使用BSON(一种二进制的json)格式数据,所以能使用python原生的字典数据类型来存储,相比MySQL操作跟简单。
跬步上线后,SAE后台显示云豆的消耗http与MySQL查询各占一半,正好SAE还支持Memcached,本着不用白不用的原则,为db.py加上了Memcached的缓存支持。
网站在并发不大的情况下,MySQL查询时间还感受不出来,但是如果并发大的化,MySQL会显著的降低响应速度,所以Memcached应运而生。
Memcached是一个分布式的内存key-value存储系统,由于数据保存在内存中所以查询速度非常快,一般作为其它数据的中间缓存层来使用。
对于SQL查询先以SQL语句为key查询Memcached,如果查到直接返回,如果没有再去查询MySQL,并把结果缓存到Memcached,下次再次查询时速度显著提升,因为Memcached的数据是保存在内存中的。
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader(templ_dir))
上一节写了WSGI与Cookie相关的内容,为了方便的实现Web App,需要编写一个简单的Web框架,需要实现以下功能:
Cookie用于存储http请求中的用户认证信息,用户在通过登录认证后,服务器在response header中设置Cookie,用户浏览器自动带Cookie访问该网站。
response header 中添加 Set-Cookie
信息,cookie是一组key,value值。
Set-Cookie: <name>=<value>[; <name>=<value>]...
[; expires=<date>][; domain=<domain_name>]
[; path=<some_path>][; secure][; httponly]