:windows

Redis在Windows下的安装配置及Python调用

Redis是一个Key-Value数据库,优点是简单,高效,稳定;缺点是所有数据存放于内存(会定期dump到磁盘),当然内存小时可以配置虚拟内存,不过性能会有所下降。 官方只提供源代码下载,并且不支持Windows,可从第三方下载Windows下的预编译文件,下载地址:

https://github.com/dmajkic/redis/downloads

解压后,所有命令均在一个目录下,服务器端直接运行redis-server.exe即可,如果需要特殊配置,可以指定配置文件或者使用redis-client进行配置。配置文件其实就是配置命令的一个集合。redis的配置命令(2.2之后)可以做到在不重启服务的情况下生效,包括redis版本更新,slave转为master等等。

Redis的Python接口目前比较成熟的是redis-py,项目地址为https://github.com/andymccurdy/redis-py,通过git可将源码下载到本地,git的安装和使用请参考[《Git使用123》](http://www.lunny.info/html/2011/01/24/625330.html)。

git clone https://github.com/andymccurdy/redis-py.git
cd redis-py
python setup install

redis-py的使用请参考https://github.com/andymccurdy/redis-py

Tornado在Windows下解析文件mime类型错误一则及解决

今日遇到一则错误,tornado服务器在解析文件的mime类型时报错,无法获取,错误如下。

codeUnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0

出错误原因: Windows注册表中保存的mime类型对应项中包含非ascii字符

解决方法: 执行regedit,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MIME\Database\Content Type 在其中找到非英文字母的mime类型,例如我遇到的“视频/x-m4v”,删除即可。

如何避免: 有些程序在安装时会新增一些mime类型,如果胡乱加,那么肯定就会出问题。我遇到的这个问题,估计是哪个视频播放软件犯了一个低级错误,不该翻译的地方翻译了。这个错误一般情况下不会有什么危害,真正除了问题却有可能摸不着头脑。

附: mime类型标准的网址:http://www.iana.org/assignments/media-types/。访问可以看到,顶级类型里不包含“视频”,只有“vedio”。