apache不缓存

本文介绍如何通过修改.htaccess文件及http.conf配置来让Apache服务器不缓存PHP文件,实现PHP内容在Internet Explorer浏览器下的即时更新,避免因缓存导致的内容不同步问题。

让Apache不缓存文件,php在IE下强制不缓存!

.htaccess文件设置。

<IfModule mod_headers.c>
  <FilesMatch "\.(php)$">
    Header set Cache-Control "no-cache, no-store"
    Header set Pragma "no-cache"
    Header set Expires "-1"
  </FilesMatch>
</IfModule>




apache http.conf配置:

LoadModule headers_module modules/mod_headers.so

Apache 提供了多个缓存相关的工具类和组件,广泛用于 Java 项目中实现缓存机制。根据你的需求(例如本地缓存、分布式缓存或 Web 缓存),可以选用同的 Apache 缓存工具。 --- ### ✅ 常用 Apache 缓存工具简介 | 工具 | 所属项目 | 用途 | |------|----------|------| | `org.apache.commons.jcs.JCS` | Apache JCS | Java Caching System,支持内存、磁盘、远程缓存 | | `org.apache.commons.pool2.impl.GenericObjectPool` | Apache Commons Pool | 对象池,可用于缓存数据库连接、Socket 等资源 | | `org.apache.logging.log4j.core.lookup.MapLookup` | Log4j 2 | 可用于缓存日志上下文信息 | | `org.apache.shiro.cache.Cache` | Apache Shiro | 安全框架中的缓存接口,支持集成 Ehcache、Redis 等 | | `org.apache.catalina.Manager` / `StandardManager` / `PersistentManager` | Apache Tomcat | Web 容器会话缓存管理器 | --- ### ✅ 示例 1:Apache JCS 缓存工具类(本地缓存Apache JCS 是一个功能强大的本地缓存库,适合中小型 Java 应用。 #### 1. 添加 Maven 依赖 ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-jcs-core</artifactId> <version>2.6.1</version> </dependency> ``` #### 2. 配置文件 `cache.ccf` ```properties jcs.default= jcs.region.example=DC jcs.region.example.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes jcs.region.example.cacheattributes.MaxObjects=1000 jcs.region.example.cacheattributes.MemoryCacheName=org.apache.commons.jcs.engine.memory.lru.LRUMemoryCache jcs.region.example.elementattributes.IsEternal=true ``` #### 3. 使用 JCS 缓存示例 ```java import org.apache.commons.jcs.JCS; import org.apache.commons.jcs.access.exception.CacheException; public class JcsCacheUtil { private static final JCS cache; static { try { cache = JCS.getInstance("example"); } catch (CacheException e) { throw new RuntimeException("JCS 初始化失败", e); } } public static void put(String key, Object value) { cache.put(key, value); } public static Object get(String key) { return cache.get(key); } public static void remove(String key) { cache.remove(key); } public static void clear() { cache.clear(); } } ``` --- ### ✅ 示例 2:Apache Commons Pool 对象池(资源缓存) 适用于缓存数据库连接、HTTP 客户端等资源。 #### 1. 添加 Maven 依赖 ```xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.11.1</version> </dependency> ``` #### 2. 创建一个资源工厂 ```java import org.apache.commons.pool2.BasePooledObjectFactory; import org.apache.commons.pool2.PooledObject; import org.apache.commons.pool2.impl.DefaultPooledObject; public class StringFactory extends BasePooledObjectFactory<String> { @Override public String create() { return "New Resource"; } @Override public PooledObject<String> wrap(String s) { return new DefaultPooledObject<>(s); } @Override public void destroyObject(PooledObject<String> p) { // 可选:资源销毁逻辑 } @Override public boolean validateObject(PooledObject<String> p) { return true; } @Override public void activateObject(PooledObject<String> p) { // 可选:激活资源逻辑 } } ``` #### 3. 使用对象池 ```java import org.apache.commons.pool2.impl.GenericObjectPool; public class PoolExample { public static void main(String[] args) { GenericObjectPool<String> pool = new GenericObjectPool<>(new StringFactory()); try { String resource = pool.borrowObject(); System.out.println(resource); pool.returnObject(resource); } catch (Exception e) { e.printStackTrace(); } } } ``` --- ### ✅ 示例 3:Tomcat 会话缓存(Web 缓存) Tomcat 提供了内置的会话缓存机制,可以使用 `PersistentManager` 将会话保存到磁盘或数据库中。 #### 配置 `context.xml`: ```xml <Context> <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1" maxActiveSessions="-1" maxIdleBackup="1"> <Store className="org.apache.catalina.session.FileStore" directory="sessions"/> </Manager> </Context> ``` --- ### ✅ 总结对比 | 工具 | 类型 | 适用场景 | |------|------|-----------| | Apache JCS | 本地缓存 | 本地数据缓存,适合中小型项目 | | Apache Commons Pool | 对象池 | 缓存数据库连接、资源对象 | | Tomcat Session Manager | Web 会话缓存 | Web 应用会话持久化 | | Apache Shiro Cache | 安全缓存 | 权限、用户信息缓存 | | Log4j MapLookup | 日志缓存 | 缓存日志上下文变量 | --- ### ✅ 建议 - 如果你只需要简单的本地缓存:**Apache JCS** - 如果你需要缓存连接池或资源对象:**Apache Commons Pool** - 如果你在开发 Web 应用,需要会话缓存:**Tomcat 内置缓存机制** - 如果你有分布式需求:建议使用 **Redis + Lettuce / Jedis** 或 **Caffeine / Ehcache** ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值