鲲鹏网页缓存库(Python) - KPCache
特性:
无需后端数据库,直接操作文件系统(建议使用Ext4文件系统),速度快。
基于ZMQ通信,支持网络高速存取。
支持多线程。
支持服务端掉线自动重连。
支持多种缓存数据类型(所有能被Python pickle的类型均被支持,不限于字符串)。
完全兼容webscraping库。
实测速度:
存储100万文档(单个大小为6.5KB)用时约1000秒。测试脚本:test.py。
安装依赖库ZMQ:
sudo easy_install zmq
启动服务端:
>>> from KPCache import KPCache
>>> KPCache.KPCacheServer(server_host='127.0.0.1', server_port=8080, folder='.KPCache').run_server()
The cache server is running on 127.0.0.1:8080, cache data will be saved in .KPCache
server_host - 服务端监听的地址,默认是127.0.0.1,如果想远程使用,可以设置为0.0.0.0。
server_port - 服务端监听的端口,默认是8080。
folder - 缓存数据的存储目录,默认是.KPCache目录。
客户端使用举例:
>>> from KPCache import KPCache
>>> cache = KPCache.KPCacheClient(server_host='127.0.0.1', server_port=8080)
>>>
>>> cache['name'] = 'Qi' # 测试保存一个字符串
>>> print cache['name'] # 测试读取
Qi
>>>
>>> cache['dict'] = {'website': 'http://www.site-digger'} # 测试保存一个字典类型数据
>>> print cache['dict']
{'website': 'http://www.site-digger'}
>>>
>>> from datetime import datetime
>>> cache['date_time'] = datetime.now() # 测试保存一个时间日期类型的数据
>>> print cache['date_time']
2014-01-23 18:34:15.921058
>>>
>>> del cache['dict'] # 测试删除某个缓存
>>> print cache['dict'] # 读取不存在的缓存会抛出 KeyError异常
Traceback (most recent call last):
File "", line 1, inFile "KPCache/KPCache.py", line 58, in __getitem__
raise KeyError('%s does not exist' % key)
KeyError: 'dict does not exist'
>>>
>>> 'http://www.site-digger.com' in cache # 判断一个key是否在缓存中
False
>>> 'name' in cache
True
注意:
在多线程中使用时,每个线程需要建立各自客户端实例,不能共享同一个客户端实例。
CodeIgniter 可以让你通过缓存页面来达到更好的性能。 尽管 CodeIgniter 已经相当高效了,但是网页中的动态内容、主机的内存 CPU 和数据库读取速度等因素直接影响了网页的加载速度。 依靠网页缓存, 你的网页可以达到近乎静态网页的加载速度,因为程序的输出结果 已经保存下来了。 缓存是如何工作的? 可以针对到每个独立的页面进行缓存,并且你可以设置每个页面缓存的更新时间。 当页面第一
页面缓存指的是在服务器端缓存整个页面的内容。 随后当同一个页面被请求时,内容将从缓存中取出,而不是重新生成。 页面缓存由 yii\filters\PageCache 类提供支持,该类是一个过滤器。 它可以像这样在控制器类中使用: public function behaviors() { return [ [ 'class' => 'yii\filt
Codeigniter 支持缓存技术,以达到最快的速度。 尽管CI已经相当高效了,但是网页中的动态内容、主机的内存CPU 和数据库读取速度等因素直接影响了网页的加载速度。 依靠网页缓存,你的网页可以达到近乎静态网页的加载速度,因为他们将程序输出的结果保存到硬盘上了。 缓存是怎么工作的? CI支持每个页面单独缓存,而且可以设置缓存更新时间。当一个网页第一次被加载的时候,缓存文件将被保存到applic
Vanilla 的 Page Cache vanilla 的 Page Cache 实现了类似 Nginx 的 FastCGICache 或者 ProxyCache 的访问结果整体缓存,以 URI 的一定规则作为缓存的 KEY,属于内存型 Cache,存储位置可配置,默认存储在 OpenResty 共享字典(Share Dict)中,默认生成的项目中 Page Cache 为关闭状态 Page C
现在假设我们有一个社交网站,有数以百万的用户简介,一些著名用户的简介页面每分钟有数百或数千人访问。 要生成一个用户简介,需要多个 SQL 查询(朋友、相册名称及照片总数、简介信息、最后状态等)。 只要用户没有更新个人资料,在个人资料页显示的信息几乎是静态的。因此,个人资料页的快照可以缓存 5 分钟或 1 小时等。 但这或许还不够。我们正在谈论数以百万的简介和用户。用户不会只查看一些简介页。我们需要
缓存页面将提高页面加载速度。 如果页面被缓存,则它将以完全呈现状态存储。 下次,当服务器收到缓存页面的请求时,它将直接发送到请求的浏览器。 缓存文件存储在application/cache文件夹中。 可以基于每页启用缓存。 启用缓存时,我们需要设置时间,直到需要将其保留在缓存文件夹中,在此期间后,它将自动删除。 启用缓存 可以通过在任何控制器的方法中执行以下行来启用缓存。 $this->out