xhttpcache 是一个HTTP高速数据缓存服务,也可以做为K-V存储的NOSQL数据库
支持redis协议接口,支持HTTP协议的REST接口;
提供HTTP数据缓存服务,支持存储二进制数据;
完整的K-V存储实现, 支持数据持久化存储(ROCKSDB);
支持数据超时机制,提供毫秒级精度。
现实完整REDIS协议接口,支持redis的SET/GET/DEL/EXIRE/TTL命令;
实现HTTP/HTTPS协议接口,支持通过REST命令访问;
实现HTTP cache相关协议,支持eTage,支持304 Not Modified, 支持对传输内容gzip压缩;
自带WEB后台编辑器,可以直接添加(上传)/修改/删除数据;
编译依赖库: 需要先编译安装好: rocksdb,libevhtp, libsnappy,libjemalloc
wget --no-check-certificate https://gitee.com/0xsky/xhttpcache/archive/master.zip unzip master cd xhttpcache-master make
xhttpcache被设计为HTTP数据加速服务器:通过提供的写接口向xhttpcache写入的数据, 可以直接通过浏览器访问. 同时也提供了redis的协议接口,可以直接通过redis的client(支持各种语言接口)进行读写, 使之也可以当做简单的NOSQL数据库使用; 通过REDIS接口建立的K-V数据,可以直接通过HTTP接口在浏览器里访问查看
xhttpcache 有两个HTTP服务端口,可以配置文件里配置; httpd_frontend_port 为开放访问端口,只支持读请求; httpd_backend_port 为后端数据操作端口,支持全部REST读写请求(get/post/put/delete); 后端数据接口访问可以设置登陆账号密码;
curl -d "testdata" http://admin:admin123@127.0.0.1:9090/testkey 通过POST请求向 xhttpcache 提交建立一条kv格式的数据:testkey -- testdata curl http://127.0.0.1:8080/testkey 通过get请求访问testkey的数据 通过前端端口访问,不需要密码验证,当然也可以通过后端接口带上密码访问: curl http://admin:admin123@127.0.0.1:9090/testkey 这两种方式通过GET请求访问的数据是完全一样的。 curl -I -X DELETE http://admin:admin123@127.0.0.1:9090/testkey 通过http协议的delete请求删除testkey 通过以下命令可以上传本地文件到 xhttpcache curl -F file=@/tmp/me.txt http://admin:admin123@127.0.0.1:9090/test.jpg
以下示例显示了所有的支持的REDIS命令
[xsky@localhost xhttpcache]$ redis-cli -p 7379 127.0.0.1:7379> set test hello OK 127.0.0.1:7379> get test "hello" 127.0.0.1:7379> set test hello ex 1000 OK 127.0.0.1:7379> get test "hello" 127.0.0.1:7379> ttl test (integer) 988 127.0.0.1:7379> EXPIRE test 2000 (integer) 1 127.0.0.1:7379> ttl test (integer) 1998 127.0.0.1:7379> get test "hello" 127.0.0.1:7379>
通过redis命令添加图片文件到 xhttpcache:
redis-cli -p 7379 -x set getheadimg.jpg <getheadimg.jpg
通过以下脚本向 xhttpcache 里批量导入磁盘文件, 以下脚本会将参数指定的目录下的文件都导入到 xhttpcache 里.
#!/bin/bash redis_cmd="redis-cli -p 7379 -x set " function batch_convert() { for file in `ls $1` do if [ -d $1"/"$file ] then batch_convert $1"/"$file else key=$1"/"$file #echo 33 $redis_cmd ${key#*/} $1"/"$file $redis_cmd ${key#*/} < $1"/"$file fi done } batch_convert $1
通过以下shell脚本,可以把 xhttpcache 里的数据按目录文件的形式导出到磁盘。
#!/bin/sh # # xHttpCache数据备份脚本 # By: xSky usage() { echo "++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "+ xHttpCache data export shell tools by:xSky " echo "+ usage: " echo "+ $0 data_dir redis_host redis_port " echo "++++++++++++++++++++++++++++++++++++++++++++++++++++" } #判断参数 if [ $# -ne 3 ]; then usage exit 0 fi data_dir=$1 redis_host=$2 redis_port=$3 echo $data_dir $redis_host $redis_port if [ -d $data_dir ];then #redis-cli -p 6579 scan a z | awk '{print "redis-cli -p 6579 get "$0 " >"$0}'|sh cd $data_dir redis-cli -h $redis_host -p $redis_port scan a z | while read line do echo $line bdir=`expr index $line "/"` file_dir=${line%/*} file_name=$line if [[ $bdir -gt 0 ]];then #echo 1 $bdir $file_dir $file_name mkdir -p $file_dir fi redis-cli -h $redis_host -p $redis_port get $line > $line done cd - else echo [ERROR] the dir $data_dir do not exist exit 0 fi
##xhttpcache是什么? xhttpcache 是一个HTTP高速数据缓存服务,也可以做为K-V存储的NOSQL数据库 支持redis协议接口,支持HTTP协议的REST接口; ##xhttpcache有哪些功能? * 提供HTTP数据缓存服务,支持存储二进制数据; * 完整的K-V存储实现, 支持数据持久化存储(ROCKSDB); * 支持数据超时机制,提供毫秒级精度。 * 现实完
xhttpcache是什么? xhttpcache 是一个HTTP高速数据缓存服务,也可以做为K-V存储的NOSQL数据库 支持redis协议接口,支持HTTP协议的REST接口; xhttpcache有哪些功能? 提供HTTP数据缓存服务,支持存储二进制数据; 完整的K-V存储实现, 支持数据持久化存储(ROCKSDB); 支持数据超时机制,提供毫秒级精度。 现实完整REDIS协议接口,支持re
现在的CPU比25年前要精密得多了。在那个年代,CPU的频率与内存总线的频率基本在同一层面上。内存的访问速度仅比寄存器慢那么一点点。但是,这一局 面在上世纪90年代被打破了。CPU的频率大大提升,但内存总线的频率与内存芯片的性能却没有得到成比例的提升。并不是因为造不出更快的内存,只是因为太 贵了。内存如果要达到目前CPU那样的速度,那么它的造价恐怕要贵上好几个数量级。 如果有两个选项让你选择,一个
UMD™ Cache(高速缓存) 将使用频率较高的数据蓄积至PSP™主机的内存,以减少UMD™的读取次数,加快数据读取速度的设定。 关 不变更UMD™的读取速度。 开 减少UMD™的读取频率。 提示 设定为[开]时,可能无法经由Ad Hoc模式与其他PSP™正确通讯。此时请调整为[关]。
Adobe Bridge 可处理并维护所有音频和视频回放文件的高速缓存。这项功能可以提升回放文件的性能,因为只要您以后想查看这些文件,就可以随时访问。建议您定期清理陈旧和不使用的媒体高速缓存文件,以便优化性能。在删除了高速缓存文件后,如果源媒体需要,则随时可以重新生成相应的高速缓存文件。 设置媒体高速缓存首选项 可执行以下步骤来设置媒体高速缓存首选项: 执行以下操作之一: (Windows) 选择
高速缓存可以存储缩览图和元数据信息(其中包括无法存储在文件中的元数据,如标签和评级),以便在您查看缩览图或搜索文件时提高性能。但存储高速缓存会占用磁盘空间。在构建高速缓存时,您可以选择将其导出以便共享或存档,您也可以选择生成 100% 预览。您可以通过清除高速缓存来管理高速缓存,并通过设置首选项来控制其大小和位置。 有关共享高速缓存的更多信息,请参阅集中管理 Adobe Bridge 高速缓存。
我有一个Cordova应用程序(),我希望在其中添加离线数据高速缓存,我也想在其中预取一些数据,即使用户没有去查看通常会调用该数据的请求。 我发现的大多数缓存帖子都与缓存web资产(如实际的应用程序文件)有关,而不是通过ajax获取的数据。在我的情况下,(科尔多瓦),我已经有了所有这些,我只需要缓存数据。对于资产缓存,我看到toolbox提到了很多,并且是从服务工作者内部运行的。 工具箱可以用于此
页面是动态生成的,因为现在我需要,所以不能缓存整个页面。但至少我想缓存所有静态内容,包括页面中包含的图像,有两种方式: 以及以常规的方式 在Varnish配置文件中,图像如和url被设置为缓存。 当页面在浏览器中打开两次,清漆似乎工作正常,和年龄是 现在,当我运行一个脚本来预热清漆缓存,然后第一次在浏览器中打开任何页面时,所有的jpgs、pngs和image.php年龄总是=0 用于预热缓存的脚本
如何启用分布式/集群缓存时使用Redis与缓存。 尤其是通过
数据缓存是指将一些 PHP 变量存储到缓存中,使用时再从缓存中取回。 它也是更高级缓存特性的基础,例如查询缓存 和内容缓存。 如下代码是一个典型的数据缓存使用模式。 其中 $cache 指向缓存组件: // 尝试从缓存中取回 $data $data = $cache->get($key); if ($data === false) { // $data 在缓存中没有找到,则重新计算它