海洋CMS

 找回密码
 注册加入

海洋cms最新动态 关注跟踪研发进展,共创和谐未来 开源透明 完全免费 - 极致专注 精益求精

海洋CMS 6.x 正式版下载 永久免费并开源的影视建站程序 使用教程 - 模板标签 - 模板 - 播放器

火车头采集发布视频文章 - - 定时自动采集教程 迅雷下载展示插件及教程 - - 定时自动生成使用说明 原MaxCms模板转换教程 - - 原MaxCms数据转换工具

查看: 2375|回复: 9

大流量解决之道 -- 改造海洋cms文件缓存为Redis缓存系统

[复制链接]

142

主题

1774

帖子

968万

积分

管理员

Rank: 9Rank: 9Rank: 9

金币
9672682
发表于 2017-2-27 11:42:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册加入

x
redis是什么,以及怎么安装使用请自行百度。

核心代码如下:
  1. function setCache($p_cacheName,$sql="",$arr=""){
  2.         global $dsql,$cfg_iscache,$cfg_cachetime,$cfg_cachemark;
  3.         $p_cacheName=$cfg_cachemark.$p_cacheName;
  4.         $redis = new redis();  
  5.         $redis->connect('127.0.0.1', 6379);  
  6.         $ttl=$redis->TTL($p_cacheName);
  7.         if ($ttl < 1 ){
  8.                 if (!empty($sql)){
  9.                         $dsql->SetQuery($sql);
  10.                         $dsql->Execute('hw');
  11.                         $cacher=array();
  12.                   while($cache=$dsql->GetObject('hw'))
  13.                         {
  14.                         $cacher[]=$cache;
  15.                         }
  16.                 }else{
  17.                         $cacher=$arr;
  18.                 }
  19.                 if (!empty($p_cacheName)){
  20.                         $redis->SETEX($p_cacheName,$cfg_cachetime*60,serialize($cacher));
  21.                 }
  22.                 unset($cacher);
  23.         }
  24. }

  25. function getCache($p_cacheName){
  26.         global $cfg_cachemark;
  27.         $p_cacheName=$cfg_cachemark.$p_cacheName;
  28.         $redis = new redis();  
  29.         $redis->connect('127.0.0.1', 6379);  
  30.         $ttl=$redis->TTL($p_cacheName);
  31.         if ($ttl > 0 ){
  32.                 return unserialize($redis->GET($p_cacheName));
  33.         }else{
  34.                 return array();
  35.         }
  36. }

  37. function chkFileCache($cacheName)
  38. {
  39.         global $cfg_cachemark;
  40.         $cacheName=$cfg_cachemark.$cacheName;
  41.         $redis = new redis();  
  42.         $redis->connect('127.0.0.1', 6379);  
  43.         $ttl=$redis->TTL($cacheName);
  44.         if ($ttl > 0){
  45.                 return true;
  46.         }else{
  47.                 return false;
  48.         }
  49. }

  50. function setFileCache($cacheName,$cacheValue)
  51. {
  52.         global $cfg_cachetime,$cfg_cachemark;
  53.         $cacheName=$cfg_cachemark.$cacheName;
  54.         $redis = new redis();  
  55.         $redis->connect('127.0.0.1', 6379);  
  56.         if ($redis->SETEX($cacheName,$cfg_cachetime*60,$cacheValue)){
  57.                 return true;
  58.         }else{
  59.                 return false;
  60.         }
  61. }

  62. function getFileCache($cacheName)
  63. {
  64.         global $cfg_cachemark;
  65.         $cacheName=$cfg_cachemark.$cacheName;
  66.         $redis = new redis();  
  67.         $redis->connect('127.0.0.1', 6379);  
  68.         return $redis->GET($cacheName);
  69. }
复制代码

为了满足多样化需求,海洋cms默认搜索过于臃肿,可以适当精简。修改search.php:
  1. $whereStr=" where v_recycled=0 and (v_name like '%$searchword%' or v_actor like '%$searchword%' or v_director like '%$searchword%' or v_publisharea like '%$searchword%'  or v_publishyear like '%$searchword%' or v_letter='$searchword' or v_tags='$searchword' or v_nickname like '%$searchword%')";
复制代码


感谢 @Bendy 指导。

23

主题

68

帖子

1060

积分

金牌会员

Rank: 6Rank: 6

金币
176
发表于 2017-3-4 16:17:13 | 显示全部楼层
这个要顶,文件缓存的确是不够用的
回复

使用道具 举报

13

主题

52

帖子

6096

积分

论坛元老

Rank: 8Rank: 8

金币
2048
发表于 2017-3-7 19:59:21 | 显示全部楼层
顶!如果后台能增加个使用Redis缓存的选项就好了
回复

使用道具 举报

8

主题

32

帖子

772

积分

高级会员

Rank: 4

金币
69
发表于 2017-3-19 15:41:50 | 显示全部楼层
这段代码。放程序哪里。那个位置。。redis配置好了
回复

使用道具 举报

8

主题

32

帖子

772

积分

高级会员

Rank: 4

金币
69
发表于 2017-4-14 01:13:20 | 显示全部楼层
你这缓存文件是要放那个目录。不能告知下?
回复

使用道具 举报

1

主题

8

帖子

222

积分

中级会员

Rank: 3Rank: 3

金币
38
发表于 2017-6-2 12:10:17 | 显示全部楼层
收藏 好东西啊!!!
回复

使用道具 举报

0

主题

12

帖子

127

积分

注册会员

Rank: 2

金币
51
发表于 2017-11-1 11:27:34 | 显示全部楼层
没有下文了,不作解答很郁闷!
回复

使用道具 举报

0

主题

4

帖子

22

积分

新手上路

Rank: 1

金币
2
发表于 2017-11-7 00:18:44 | 显示全部楼层
这段代码。放程序哪里。那个位置
回复

使用道具 举报

1

主题

7

帖子

126

积分

注册会员

Rank: 2

金币
53
发表于 2017-12-24 16:24:18 | 显示全部楼层
这段代码。放程序哪里
回复

使用道具 举报

2

主题

9

帖子

53

积分

注册会员

Rank: 2

金币
3
发表于 2017-12-24 23:19:43 | 显示全部楼层
感谢管理员大大分享,学习了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册加入

本版积分规则

小黑屋|海洋CMS

GMT+8, 2018-8-21 04:40 , Processed in 0.057608 second(s), 29 queries .

Powered by SeaCMS .Net

© 2018 All Rights Reserved

快速回复 返回顶部 返回列表