- 浏览: 156653 次
- 来自: ...
文章分类
- 全部博客 (151)
- Liferay.in.Action (3)
- 集群 (12)
- web (5)
- jna (2)
- 数据库 (7)
- Terracotta (11)
- xml (1)
- Hibernate (3)
- Jdbc (2)
- DDD (10)
- nosql (7)
- 云存储 (3)
- 云产品 (7)
- 云计算 (26)
- Hadoop (11)
- 虚拟化 (5)
- REST (3)
- 程序人生 (11)
- google (2)
- 安全应用 (5)
- LDAP (0)
- 安全技术 (5)
- android (4)
- 网络妙语 (1)
- HTML5 (1)
- 搜索引擎 (1)
- 架构设计 (5)
- redis (3)
- Cassandra (2)
最新评论
-
liwanfeng:
情况是这样的,你的文件我觉得还是比较小,我现在需要处理的XML ...
dom4j处理大文件
原文 http://www.oschina.net/question/12_60107
Redis 是一个高级的 key-value 存储系统,类似 memcached,所有内容都存在内存中,因此每秒钟可以超过 10 万次 GET 操作。 我下面提出的解决方案是在 Redis 中缓存所有输出的 HTML 内容而无需再让 WordPress 重复执行页面脚本。这里使用 Redis 代替 Varnish 设置简单,而且可能更快。 如果你使用的是 Debian 或者衍生的操作系统可使用如下命令安装 Redis: 或者阅读 安装指南 你需要一个客户端开发包以便 PHP 可以连接到 Redis 服务上。 这里我们推荐 Predis. 上传 predis.php 到 WordPress 的根目录。 步骤1: 在 WordPress 的根目录创建新文件 index-with-redis.php ,内容如下: 或者直接下载 index-with-redis.php 步骤2:将上述代码中的 IP 地址替换成你网站的 IP 地址 步骤3:在 .htaccess 中将所有出现 index.php 的地方改为 index-with-redis.php ,如果你使用的是 Nginx 则修改 nginx.conf 中的 index.php 为 index-with-redis.php(并重载 Nginx : killall -s HUP nginx)。 我已经在我的博客中使用了如上的方法进行加速很长时间了,一切运行良好。 我的环境是 Nginx + PHP-FPM + APC + Cloudflare + Redis. 安装在一个 nano VPS 中,无缓存插件。 请确认使用了 gzip 压缩,可加快访问速度。 要访问 wp-admin 必须使用 /wp-admin/index.php 代替原来的 /wp-admin/.安装 Redis
1
apt-get
install
redis-server
使用 Predis 作为 Redis 的 PHP 客户端
前端缓存的 PHP 脚本
001
<?php
002
003
// Change these two variables:
004
005
$seconds_of_caching
= 60*60*24*7;
// 7 days.
006
007
$ip_of_this_website
=
'204.62.14.112'
;
008
009
010
011
/*
012
013
- This file is written by Jim Westergren, copyright all rights reserved.
014
015
- See more here: www.jimwestergren.com/wordpress-with-redis-as-a-frontend-cache/
016
017
- The code is free for everyone to use how they want but please mention my name and link to my article when writing about this.
018
019
- Change $ip_of_this_website to the IP of your website above.
020
021
- Add ?refresh=yes to the end of a URL to refresh it's cache
022
023
- You can also enter the redis client via the command prompt with the command "redis-cli" and then remove all cache with the command "flushdb".
024
025
*/
026
027
028
029
// Very necessary if you use Cloudfare:
030
031
if
(isset(
$_SERVER
[
'HTTP_CF_CONNECTING_IP'
])) {
032
033
$_SERVER
[
'REMOTE_ADDR'
] =
$_SERVER
[
'HTTP_CF_CONNECTING_IP'
];
034
035
}
036
037
038
039
// This is from WordPress:
040
041
define(
'WP_USE_THEMES'
, true);
042
043
044
045
// Start the timer:
046
047
function
getmicrotime(
$t
) {
048
049
list(
$usec
,
$sec
) =
explode
(
" "
,
$t
);
050
051
return
((float)
$usec
+ (float)
$sec
);
052
053
}
054
055
$start
= microtime();
056
057
058
059
// Initiate redis and the PHP client for redis:
060
061
include
(
"predis.php"
);
062
063
$redis
=
new
Predis\Client(
''
);
064
065
066
067
// few variables:
068
069
$current_page_url
=
"http://"
.
$_SERVER
[
'HTTP_HOST'
].
$_SERVER
[
'REQUEST_URI'
];
070
071
$current_page_url
=
str_replace
(
'?refresh=yes'
,
''
,
$current_page_url
);
072
073
$redis_key
= md5(
$current_page_url
);
074
075
076
077
// This first case is either manual refresh cache by adding ?refresh=yes after the URL or somebody posting a comment
078
079
if
(isset(
$_GET
[
'refresh'
]) ||
substr
(
$_SERVER
[
'REQUEST_URI'
], -12) ==
'?refresh=yes'
|| (
$_SERVER
[
'HTTP_REFERER'
] ==
$current_page_url
&&
$_SERVER
[
'REQUEST_URI'
] !=
'/'
&&
$_SERVER
[
'REMOTE_ADDR'
] !=
$ip_of_this_website
)) {
080
081
require
(
'./wp-blog-header.php'
);
082
083
$redis
->del(
$redis_key
);
084
085
086
087
// Second case: cache exist in redis, let's display it
088
089
}
else
if
(
$redis
->exists(
$redis_key
)) {
090
091
$html_of_current_page
=
$redis
->get(
$redis_key
);
092
093
echo
$html_of_current_page
;
094
095
echo
"<!-- This is cache -->"
;
096
097
098
099
// third: a normal visitor without cache. And do not cache a preview page from the wp-admin:
100
101
}
else
if
(
$_SERVER
[
'REMOTE_ADDR'
] !=
$ip_of_this_website
&&
strstr
(
$current_page_url
,
'preview=true'
) == false) {
102
103
require
(
'./wp-blog-header.php'
);
104
105
$html_of_current_page
=
file_get_contents
(
$current_page_url
);
106
107
$redis
->setex(
$redis_key
,
$seconds_of_caching
,
$html_of_current_page
);
108
109
echo
"<!-- Cache has been set -->"
;
110
111
112
113
// last case: the normal WordPress. Should only be called with file_get_contents:
114
115
}
else
{
116
117
require
(
'./wp-blog-header.php'
);
118
119
}
120
121
122
123
124
125
// Let's display some page generation time (note: CloudFlare may strip out comments):
126
127
$end
= microtime();
128
129
$t2
= (getmicrotime(
$end
) - getmicrotime(
$start
));
130
131
if
(
$_SERVER
[
'REMOTE_ADDR'
] !=
$ip_of_this_website
) {
132
133
echo
"<!-- Cache system by Jim Westergren. Page generated in "
.
round
(
$t2
,5).
" seconds. -->"
;
134
135
}
136
137
?>
性能测试
其他建议
访问 wp-admin
发表评论
-
Cassandra 分布式数据库详解,第 1 部分:配置、启动与集群
2012-08-01 11:13 894原文 http://www.ibm.com/devel ... -
Cassandra 分布式数据库详解,第 2 部分:数据结构与数据读写
2012-08-01 11:11 900原文 http://www.ibm.com/develope ... -
Linux 下 Redis 安装详解
2012-08-01 10:54 828原文 http://www.oschina.net/qu ... -
Redis作者:深度剖析Redis持久化
2012-08-01 10:37 843原文 http://www.iteye.com ... -
华为称IT业五年内面临变革 云计算列入核心战略
2012-07-31 10:32 0原文 http://www.hadoopor.com/ ... -
Hadoop分布式文件系统:架构和设计要点
2012-07-31 10:07 669摘自 http://www.blogjava.net/ ... -
淘宝数据魔方技术架构解析
2012-07-31 10:09 746原文 http://www.programmer.com.c ... -
Apache Hadoop 2.0 Alpha 版发布
2012-07-30 16:10 1858原文 http://www.iteye.com/news/25 ... -
MongoDB Hadoop Connector 1.0 正式版发布
2012-07-30 16:01 882原文 http://www.iteye.com/news/24 ... -
VMware发布开源项目Serengeti,支持云中部署Apache Hadoop
2012-07-30 15:55 777原文 http://www.iteye.com/news/25 ... -
安全第一!VMware云安全八项新举措
2012-07-30 16:03 894云与安全,就这 ... -
EMC与VMware和Intel联手云安全
2012-07-28 14:05 668原文 http://security.zdnet.com.cn ... -
剖析开源云
2012-07-28 13:11 661原文 http://www.oschina.net/q ... -
怎样部署基于Spring与数据库的应用到CloudFoundry
2012-07-26 15:16 772原文 http://www.oschina.net/q ... -
深度剖析CloudFoundry的架构设计
2012-07-26 15:17 758原文 http://qing.weibo.com/22 ... -
Cloud Foundry——Azure杀手?
2012-07-25 09:54 1018原文 http://cloud.csdn.net/a/ ... -
业界首个开放式云服务平台Cloud Foundry
2012-07-25 09:52 978原文 http://sd.csdn.net/a/201 ... -
Jdon关于云的文章
2012-07-23 11:48 842云计算 著名的 ... -
盘点Chrome 8的八大新功能 硬件加速与新技术
2010-11-09 21:59 1191原文 http://os.51cto.com/art/ ... -
PC机的云时代 Chrome OS能否取代Windows
2010-11-09 21:56 1121原文 http://os.51cto.com/art/ ...
相关推荐
基于Centos7系统中LAMP环境下的WordPress站点进行Redis缓存加速服务的部署
基于PHP的Wordpress专用Redis缓存系统.zip
基于PHP的Wordpress专用Redis缓存系统源码.zip
这是一个非插件版针对Wordpress开发的Redis缓存系统。为了进一步提高处理速度,系统采用纯PHP代码,没有引入WP核心文件。功能介绍:可定义某些页面跳过缓存。已登录用户跳过缓存。支持手动清除缓存,可配合crontab定时...
今天给大家带来wordpress开启redis缓存 加速速度仅需0.1秒,不开玩笑真的非常有效,wordpress在数据比较大的情况下表现为慢吞吞。原因就是不断的对数据库的查询造成的,怎么才能减少MYSQL数据库负担呢?那么就是需要...
这是一个非插件版针对Wordpress开发的Redis缓存系统啊也不算系统. 为了进一步提高处理速度系统采用纯PHP代码没有引入WP核心文件. 设计原理: 当用户访问某一个页面时将整页写入到
WP Redis 使用Redis的WordPress对象缓存。 由Alley Interactive提供。先决条件 设置将object-cache.php安装到wp-content/object-cache.php 。 在wp-config.php文件中,添加服务器凭据: $redis_server = array( '...
这是一个非插件版针对Wordpress开发的Redis缓存系统。 为了进一步提高处理速度,系统采用纯PHP代码,没有引入WP核心文件。 功能介绍: 可定义某些页面跳过缓存。 已登录用户跳过缓存。 支持手动清除缓存,可配合...
我下面提出的解决方案是在Redis中缓存所有输出的HTML 内容而无需再让WordPress重复执行页面脚本。这里使用Redis代替Varnish设置简单,而且可能更快。安装 Redis如果你使用的是 Debian 或者衍生的操作系统可使用如下...
支持设置缓存方式,是使用文件缓存还是Redis缓存或者Memcache缓存。 可以设置页面内容的缓存有效期。 友好的错误提示文字,让您轻松设置Redis缓存或者Memcache缓存。 支持配置指定GET\COOKIE参数缓存,排除页面...
这是一个非插件版针对Wordpress开发的Redis缓存系统。 为了进一步提高处理速度,系统采用纯PHP代码,没有引入WP核心文件。 功能介绍: 可定义某些页面跳过缓存。 已登录用户跳过缓存。 支持手动清除缓存,可配合crontab...
支持设置缓存方式,是使用文件缓存还是Redis缓存或者Memcached缓存。 可以设置页面内容的缓存有效期。 友好的错误提示文字,让您轻松设置Redis缓存或者Memcached缓存。 支持配置指定GET\COOKIE参数缓存,排除页面...
用于WordPress的Redis页面缓存 由Redis支持的用于WordPress的全页缓存插件,非常灵活和快速。 需要运行的和扩展。 要求 确保您具有正在运行的Redis服务器,并且PECL PHP Redis扩展已安装并处于活动状态。 两者都可以...
为原始性能重写100%符合WordPress API 更快的序列化和压缩轻松调试和记录缓存预取和分析完全经过单元测试(100%代码覆盖率) 使用TLS的安全连接通过WordPress和WP CLI进行健康检查针对WooCommerce,Jetpack和...
总览一个高效,可预测且经过单元测试的WordPress对象缓存后端,可使用Redis PECL库实现所有可用方法。为什么这个叉子更好? 通过单个mget()调用预加载已知的缓存键,并进行延迟反序列化进一步的微优化例程使其成为最...
WordPress的OPcache对象缓存插件。 比Redis,Memcache或APC更快。 描述 该插件为WordPress对象缓存提供了一个基于PHP OPcache的驱动程序。 对象缓存是WordPress和WordPress扩展存储复杂操作结果的地方。 在随后的...
适用于WordPress的Enterprise Redis:trade_mark:对象缓存 WPCache是用于WordPress的Redis对象缓存插件,从头开始编写时要牢记原始性能,以避免不必要的读写,并保持很小的内存占用。
使用持久性对象缓存来增强您的网站的性能,并通过OPcache后端加速缓存。 描述 Docket缓存是一个持久的WordPress对象缓存,存储为纯PHP代码。 打算为无法使用Redis或Memcached服务器的用户提供替代选项。 该插件...