请选择 进入手机版 | 继续访问电脑版

php-运用memcache的小例子

[复制链接]
太阳神鹰 发表于 2021-1-3 12:15:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
memcache实际上也是一个服务器,不外他是存在内存内里的不是存在磁盘内里的

  • 优点
    速度很快
  • 缺点
    不能永久存储,存放巨细受内存限制没有用户名跟防火墙,mysql有
    不外缓存内里也不会存储重要信息什么的,速度快就很ok,不外受内存限制有点伤,究竟内存条比力贵
memcache如何安装

以window举例,

将.exe文件放在c盘下,

ctrl+r 打开运行,cmd进入dos,
找到memcache的根目次下

运行指令memcached.exe -d install 举行安装 卸载就是uninstall
如果安装乐成 运行指令memcached -h 检察一下

启动memcache 运行指令memcached.exe -d start 停止就是stop
去任务管理器看一下启动了没有,根本没有啥踩雷的地方。启动好之后,咱们就可以运行memcache了。

memcache的默认端标语是11211,
如果你想更改端标语让别人查不到的话,需要去注册表
regedit
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\memcached Server

将这个值改为"c:\memcached\memcached.exe" -p 20000 -d runservice 即可,这样的话访问得按照20000的端口访问了

然后我这里用的telnet来操纵(也可以下载secureCRT来弄)
运行指令: telnet 127.0.0.1 11211(如果改端标语了,这里同步)

先打几个空格再说

在memcache服务器内里的操纵暂时不说了,主要说下在php内里的操纵(本日他不是主角),
将php_memcache.dll放在php.ini下,可以ctrl+f寻找extension,然后在最后加上 * extension=php_memcache.dll*
然后 phpinfo
检察一下有没有问题

  1. $me = new Memcache();var_dump($me);
复制代码
这样就说明创建了memcache缓存对象了

当我们客户端访问服务器的时候,如果每一次都从数据库读取数据的话,如果访问量比力大的话,就卡的很,主要是如果优化比力费钱,这种针对长期大概一段时间不会更改的网页的内容,如果是实时的话比方秒杀什么的需要高并发大概是页面一直在更新,照旧不能用缓存机制的好。
创建好之后,开始弄一个用户列表的小例子
  1. $me = new Memcache();//毗连memcache服务器$me->connect('127.0.0.1',11211);//pdo毗连数据库$dsn = "mysql:host=localhost;dbname=www.hm.com";$username = "hmcom";$password = "123456";$pdo = new PDO($dsn,$username,$password);$pdo->exec('set names utf8');$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//判定是否拿到memcache内里的数据//var_dump($me->get('row'));if(!($row = $me->get('row'))){    echo '还没获取,此时把数据库的数据传到memcache服务器内里';    $sql = "select * from `user` where id > 0";    $smt = $pdo->prepare($sql);    $smt->execute();    $result = $smt->fetchAll();    $me->set('row',$result,0,50);    $s = 1;}else{    $s = 0;}//判定是否从memcache服务器获取到数据,//如果没有,则访问数据库内里的数据//如果存在,则直接从memcache内里获取数据 (但是注意需要设置逾期时间,否则永远都展示缓存内里的内容了)?>                检察所有用户                    [size=5]检察用户:[/size]
  2.     [url=https://www.jianchenwangluo.com/clear.php]清除缓存[/url]    [table]                [tr]            编号            用户名            年事            资产        [/tr]                                    [tr]                                [td][/td]                [td][/td]                [td][/td]            [/tr]                        [/table]                                    页面数据全部来自Mysql数据库!
  3.             
  4.                                         页面数据全部来自Memcache缓存!
  5.             
  6.             
复制代码
第一次是从数据库读取

之后全部是从memcache内里拿数据,不在颠末数据库

实现一键清除缓存
  1. [url=https://www.jianchenwangluo.com/clear.php]清除缓存[/url]
复制代码
详细实现
[code][/code]
来源:https://blog.csdn.net/weixin_44088587/article/details/111941174
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )