当前位置: 首页 > news >正文

基于php+mysql的网站开发wordpress代刷网主题

基于php+mysql的网站开发,wordpress代刷网主题,免费影院,dedecms购物网站com.google.common.cache 基础介绍com.google.common.cache 是 Google Guava 库中的一个缓存工具包,用于实现本地缓存功能。其核心类包括 Cache 和 LoadingCache,支持自动加载、过期策略、缓存淘汰等功能。缓存创建与基本使用通过 CacheBuilder 构建缓存…

com.google.common.cache 基础介绍

com.google.common.cache 是 Google Guava 库中的一个缓存工具包,用于实现本地缓存功能。其核心类包括 CacheLoadingCache,支持自动加载、过期策略、缓存淘汰等功能。


缓存创建与基本使用

通过 CacheBuilder 构建缓存实例,支持链式配置。以下是一个基础示例:

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;// 创建缓存实例
Cache<String, String> cache = CacheBuilder.newBuilder().maximumSize(100)          // 最大缓存条目数.expireAfterWrite(10, TimeUnit.MINUTES) // 写入后10分钟过期.build();// 写入缓存
cache.put("key1", "value1");// 读取缓存(若不存在返回null)
String value = cache.getIfPresent("key1");

LoadingCache 自动加载

LoadingCache 在缓存未命中时自动通过 CacheLoader 加载数据,适合需要自动填充缓存的场景。

import com.google.common.cache.LoadingCache;
import com.google.common.cache.CacheLoader;LoadingCache<String, String> loadingCache = CacheBuilder.newBuilder().maximumSize(100).build(new CacheLoader<String, String>() {@Overridepublic String load(String key) {// 模拟从数据库加载数据return fetchFromDatabase(key);}});// 使用get方法触发自动加载
String value = loadingCache.get("key1");

缓存过期策略

Guava Cache 支持两种过期策略:

  1. 基于写入时间过期

    CacheBuilder.newBuilder().expireAfterWrite(5, TimeUnit.SECONDS) // 写入后5秒过期.build();
    
  2. 基于访问时间过期

    CacheBuilder.newBuilder().expireAfterAccess(10, TimeUnit.SECONDS) // 最后一次访问后10秒过期.build();
    

缓存淘汰策略

支持基于大小、权重、手动清理等淘汰方式:

// 基于大小淘汰
CacheBuilder.newBuilder().maximumSize(100) // 最多保留100个条目.build();// 基于权重淘汰(需定义weigher)
CacheBuilder.newBuilder().maximumWeight(1000).weigher((String key, String value) -> value.length()).build();// 手动清理单个条目
cache.invalidate("key1");// 清理所有条目
cache.invalidateAll();

监听器与统计信息

通过 RemovalListener 监听条目移除事件,并启用统计信息:

// 添加移除监听器
CacheBuilder.newBuilder().removalListener((RemovalNotification<String, String> notification) -> {System.out.println("Key " + notification.getKey() + " was removed due to " + notification.getCause());}).build();// 启用统计信息
Cache<String, String> cache = CacheBuilder.newBuilder().recordStats().build();// 获取命中率等信息
CacheStats stats = cache.stats();
double hitRate = stats.hitRate();

完整示例:缓存数据库查询

以下是一个结合数据库查询的完整示例:

LoadingCache<String, User> userCache = CacheBuilder.newBuilder().maximumSize(1000).expireAfterWrite(30, TimeUnit.MINUTES).build(new CacheLoader<String, User>() {@Overridepublic User load(String userId) {return userDao.findById(userId); // 模拟数据库查询}});// 使用缓存
User user = userCache.get("user123");

注意事项

  1. 线程安全CacheLoadingCache 是线程安全的,无需额外同步。
  2. 空值处理:默认不允许缓存 null 值,需在 CacheLoader 中显式处理。
  3. 性能监控:通过 recordStats() 监控缓存命中率,优化缓存大小和过期时间。

通过上述配置和示例,可以灵活应对多种本地缓存需求。

http://www.dtcms.com/a/417330.html

相关文章:

  • 甘南网站建设哪个网站有帮忙做公开课课件
  • 南通城乡住房建设厅网站首页沧州市网络公司
  • 景安 怎么把网站做别名艺术字体在线生成器转换器
  • 网站怎么做必须交钱吗兴国电商网站建设
  • wordpress 后台加入链接后_网站显示是标签_不是链接京东商城官网登录
  • 玉林网站开发徐州seo推广公司
  • 零食店网站建设计划书江苏网站开发电话
  • 江西省做网站开源cms系统哪个好
  • 医疗器械网站前置审批html网页制作接单
  • 网站建设的实施方案网站开发实训结果分析及其心得体会
  • 沈阳专业建站在线商标设计
  • 电商网站设计公司排名wordpress字体加载
  • 用jsp做的二手交易网站网站开发公司 上
  • 绿色门业宽屏网站模板 破解华蓥网站建设
  • 网站设计培训班网上购物网站建设方案
  • asp网站开发工具神器计算机应用技术主要学什么
  • 网站建设工作流程图苏州网站建设提供商
  • 好用的土木建筑网站公司取名字
  • 东莞高端做网站中国常用网站
  • 百度网站首页收录济南营销型网站建设
  • 没有网站怎么做熊掌号破解版 wordpress
  • iis7部署asp网站网站项目策划书内容模板
  • 发布 php 微网站51做网站建设企业官网
  • 旅游门户网站模板新网网站制作
  • 网站网页相关概念在线男人和女人做那件事网站
  • 英语做课后作业的网站linux WordPress上传插件需要ftp
  • 行业网站建设公司恒兴建设集团有限公司网站
  • 网站调优wordpress禁用响应
  • 黑龙江网站建设业务深圳福步外贸论坛
  • 山东济南seo整站优化公司石家庄工信部网站备案