首先在服务器上确保已经安装redis扩展。
写入信息ID到redis集合(帝国CMS后台自定义页面)
<?php header("Content-Type:text/html;charset=utf-8"); $redis=new Redis(); try { $redis->connect('127.0.0.1', 6379); echo "Redis Server version: ". $redis->info()['redis_version'] ."<br />"; //显示版本 $key='infoid'; $deleted=$redis->del($key); $sql=$empire->query("select id from phome_ecms_news_index order by id"); while($r=$empire->fetch($sql)){ $redis->sADD($key,$r[id]); } } catch (Exception $e) { echo "Cannot connect to Redis server: " .$e->getMessage(). "<br />"; } $redis->close();// 关闭连接 ?>
redis获取集合中信息ID
<?php header("Content-Type:text/html;charset=utf-8"); $redis=new Redis(); try { $redis->connect('127.0.0.1', 6379); echo "Redis Server version: ". $redis->info()['redis_version'] ."<br />"; //显示版本 $key='infoid'; $members=$redis->sMembers($key); foreach ($members as $member) { echo $member . PHP_EOL; } } catch (Exception $e) { echo "Cannot connect to Redis server: " .$e->getMessage(). "<br />"; } $redis->close();// 关闭连接 ?>
调用帝国CMS随机信息(以下代码放到e/action/redis/下)
<?php require('../../class/connect.php'); //引入数据库配置文件和公共函数文件 require('../../class/db_sql.php'); //引入数据库操作文件 require('../../data/dbcache/class.php'); //引入栏目缓存文件 $link=db_connect(); //连接MYSQL $empire=new mysqlquery(); //声明数据库操作类 $editor=1; //声明目录层次 $nu=(int)$_GET[num]; if(!$nu){ $nu=10; } $redis=new Redis();//连接 $redis->connect('127.0.0.1', 6379); $key='infoid'; //写入内存的KEY键值 $randomid=$redis->sRandMember($key,$nu); //获取集合取数据 foreach($randomid as $data){ $r=$empire->fetch1("select id,title,titleurl,writer,smalltext from {$dbtbpre}ecms_news where id='$data' order by id asc limit 1"); ?> <li><a href="<?=$r[titleurl]?>" title="<?=$r[title]?>"><?=$r[title]?></a></li> <? } $redis->close();// 关闭连接 db_close(); //关闭MYSQL链接 $empire=null; //注消操作类变量 ?>
直接访问PHP查看效果。
在模板中调用可以参考以下代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Fetch Example</title> </head> <body> <div id="output"></div> <script> fetch('/e/action/redis/redis.php') .then(response => response.text()) .then(data => { document.getElementById('output').innerHTML = data; }) .catch(error => console.error('Error:', error)); </script> </body> </html>
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论0+