首页 > 数据库 >帝国cms实现数据库查询缓存方法

帝国cms实现数据库查询缓存方法

时间:2025-01-14 15:21:36浏览次数:1  
标签:缓存 titleurl title 数据库 num result cms dd

<?php

function getCache($key)
{
    $cacheFile = 'cache/' . md5($key) . '.json'; // 使用 md5 生成唯一的文件名
    if (file_exists($cacheFile)) {
        $data = json_decode(file_get_contents($cacheFile), true);
        // 检查缓存是否过期(例如,设置过期时间为 1 小时)
        if (time() - $data['timestamp'] < 3600) {
            return $data['content']; // 返回缓存内容
        } else {
            unlink($cacheFile); // 删除过期缓存
        }
    }
    return false; // 缓存不存在或已过期
}

function setCache($key, $content)
{
    $cacheFile = 'cache/' . md5($key) . '.json'; // 使用 md5 生成唯一的文件名
    $data = [
        'timestamp' => time(),
        'content' => $content,
    ];
    file_put_contents($cacheFile, json_encode($data)); // 将数据写入缓存文件
}

function hotbookwriter($num = null)
{
    global $empire, $dbtbpre, $class_r;

    if (!$num) {
        $num = 12;
    }

    // 检查缓存是否存在
    $cacheKey = "hotbookwriter_" . $num;
    $cachedResult = getCache($cacheKey);
    if ($cachedResult) {
        return $cachedResult; // 如果缓存存在,直接返回
    }

    $xxx = [];
    $sql = "SELECT id, classid, titleurl, title, writers FROM phome_ecms_sinfo ORDER BY newstime LIMIT $num";
    $sqls = $empire->query($sql);

    while ($dd = $empire->fetch($sqls)) {
        $titleurl = htmlspecialchars($dd["titleurl"]);
        $title = htmlspecialchars($dd["title"]);
        $author = htmlspecialchars($dd["writers"]);
        $auurl = user_ReturnWriterStr1($dd['id'], $dd['classid'], $dd['writers']);
        
        $xxx[] = '<li><a href="' . $titleurl . '">' . $title . '</a><a class="gray" href="' . $auurl . '">' . $author . '</a></li>';
    }

    $result = implode('', $xxx);
    
    // 将结果存入缓存
    setCache($cacheKey, $result);

    return $result;
}

 

标签:缓存,titleurl,title,数据库,num,result,cms,dd
From: https://www.cnblogs.com/pyforseo/p/18670850

相关文章

  • AI驱动的CMS:从内容创作到推荐,智能化的变革
    一、AI与CMS的结合:为什么是未来内容管理的趋势?CMS的传统局限性传统CMS为网站和企业提供了一个结构化的平台,帮助组织发布和管理内容。然而,传统的CMS系统依赖于人工的内容创作、发布、更新和优化,往往存在以下问题:内容过度依赖人工:内容创作需要大量人工输入,难以实现高效、持续的......
  • SpringBoot社区旧物交易系统r8gnw(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商品分类,商品信息开题报告内容一、研究背景随着社会的发展和人们生活水平的提高,人们对于环境保护和资源回收的意识不断增强。同时,随着城市化进程的加快,大......
  • JSP林业局办公用品管理系统的设计与实现2tnjd--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与目的随着林业局的日常办公需求不断增长,办公用品的管理变得日益复杂。传统的人工管理方式不仅效率低下,还容易出现误差。因此,设计并实......
  • JSP零食网络购物平台0r503--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、研究背景随着互联网的快速发展......
  • JSP乐宠宠物医院管理系统7wmp9程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库使用MySQL开题报告内容一、课题名称乐宠宠物医院管理系统......
  • JSP离散数学考试系统46229程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景离散数学作为计算机科学及相关领域的重要基础课程,其教学效果的评估方式需要与时俱进。传统的纸质考试方式不仅耗费大量资源,而且难以全......
  • 记录在虚拟机中达梦数据库DEM安装过程遇到的问题解决方法
    本篇博客是记录了在寒假课程设计中在虚拟机麒麟银河系统安装达梦数据库DEM遇到的各种刁钻问题的解决方法,希望同样遇到这些问题的小伙伴们能够在查看本篇博客后真正解决问题。废话不多说,直接往下看吧! dem服务器的安装与部署1、上传dem和tomcat压缩包2、./dminitpath=/d......
  • SQL 详解数据库
    SQL(StructuredQueryLanguage,结构化查询语言)是一种专门用于与关系型数据库进行交互的标准化语言。它可以用于查询、更新和管理数据库中的数据,以及定义和控制数据库的结构。以下是SQL的主要功能模块及其详解:1.数据查询(DataQuery)1.1SELECT语句用于从数据库中检索......
  • 【向量数据库】搭建RAG架构,如何选择向量数据库产品?
    搭建RAG架构应用时,选择合适的向量数据库是关键。向量数据库是RAG系统的核心组件,负责存储和检索高维向量数据,从而支持高效的语义搜索和信息检索功能。那么今天与大家分享下如何选择向量数据库,以及主流向量数据库产品的推荐,供您参考学习。如何选择向量数据库?性能与延迟:向量数据库......
  • 如何在宝塔面板中修改phpMyAdmin数据库管理端口?
    宝塔面板为了安全考虑,屏蔽了phpMyAdmin默认管理端口888的访问。为了避免数据泄露或更大的损失,您可以通过在宝塔面板中修改端口号来解决这个问题。以下是具体步骤:登录宝塔面板:使用您的管理员账户登录宝塔面板。进入软件商店:在左侧导航栏中点击“软件商店”。找到phpMyAdmin:在已......