后台网站下载做高端网站建设公司
后台网站下载,做高端网站建设公司,网站打开是目录结构图,商城网站开发案例学习了解PHP中Memcached扩展的使用 说实话#xff0c;在目前的开发环境中#xff0c;使用 Memcache 的项目还真的不多。在 Redis 大行其道的今天#xff0c;Memcache 的衰退也可以说是大势所趋。不过#xff0c;可能很多刚开始学习 PHP 的新同学不知道#xff0c;当年在 L… 学习了解PHP中Memcached扩展的使用 说实话在目前的开发环境中使用 Memcache 的项目还真的不多。在 Redis 大行其道的今天Memcache 的衰退也可以说是大势所趋。不过可能很多刚开始学习 PHP 的新同学不知道当年在 LAMP 时代除了这四个字母所代表的这些服务端软件之外缓存上最出名的就是这个 Memcache 它和 PHP 搭配的历史也非常的长。 因此今天我们就是简单地入门学习了解一下不做过多的深入学习。对于小的项目来说如果只是需要一个键值对的缓存系统Memcache 其实也是非常不错的选择毕竟它更加地简单易用不用考虑过多的数据结构问题。 我们需要在服务器上安装 Memcached 这个服务端组件然后启动运行它。这个就不多做解释了基本上 yum 和 apt 都能非常方便地安装它。而 PHP 中的扩展我们可以选择 Memcached 和 Memcache 两种扩展包现在比较推荐的是直接安装 Memcached 这个扩展。它们两个其实没啥区别这个缓存软件叫做 Memecahce 但它的运行主程序叫做 Memcached 而在 PHP 层面的话Memcache 这个扩展是在 PHP 框架内部开发的而 Memcached 则是要使用 libmemcached 这个系统组件的。具体更多的区别大家可以自行搜索相关的文档资料这里就不多解释了反正只要知道它们大概的区别以及现在更推荐使用谁就可以了。 连接 Memcached 服务器并查看信息 安装好各种软件之后我们就可以连接到 Memcache 服务了。 $m new Memcached();
$m-addServer(127.0.0.1, 11211);print_r($m-getStats());
// Array
// (
// [127.0.0.1:11211] Array
// (
// [pid] 1713
// [uptime] 1277
// [time] 1614646202
// [version] 1.5.22
// [libevent] 2.1.8-stable
// [pointer_size] 64
// …………………………
// …………………………
// …………………………print_r($m-getServerList());
// Array
// (
// [0] Array
// (
// [host] 127.0.0.1
// [port] 11211
// [type] TCP
// )// ) 使用 addServer() 这个方法来添加服务器是不是隐约感觉到了什么而且我们可以通过 getServerList() 查看所有的连接的服务器列表。很明显Memcached 相关的扩展都是支持多台服务器扩展访问的。getStats() 方法可以看到连接的服务器的各种统计信息。 添加、查看数据 添加数据 $m-add(test1, a);
$m-add(test2, 1);
$m-add(test3, c, 3);
sleep(4);print_r($m-getAllKeys());
// Array
// (
// [0] test1
// [1] test2
// [2] test3
// )echo $m-get(test1), PHP_EOL; // a
echo $m-get(test3), PHP_EOL; // 我们直接使用 add() 方法就可以添加数据最后一个参数可以设置这个数据的过期时间。通过 getAllKeys() 方法可以看到添加数据的键信息不过过期的数据键还会存在一会。而我们直接使用 get() 方法获取数据内容时过期的数据就无法访问了。 一次性获得数据信息 $m-getDelayed([test1, test2, test3]);
print_r($m-fetchAll());
// Array
// (
// [0] Array
// (
// [key] test1
// [value] a
// )// [1] Array
// (
// [key] test2
// [value] 1
// )// ) 使用 getDelayed() 方法可以获得指定键数组的全部数据信息它是包含 key 和 value 的内容返回的是一个游标我们可以直接用 fetchAll() 获得全部的内部也可以使用 fetch() 一条一条的遍历。 追加与设置数据 $m-setOption(Memcached::OPT_COMPRESSION, false);
$m-append(test1, aa);
echo $m-get(test1), PHP_EOL; // aaa$m-set(test4, d);
print_r($m-getMulti([test1, test4]));
// Array
// (
// [test1] aaaaaaaaaaaaaaaaaaaaa
// [test4] d
// ) 使用 append() 方法可以向指定的数据追加内容比如这里我们向 test1 追加内容它原本的值是 a 追加之后就变成了 aaa 。需要注意的是使用 append() 方法需要设置 OPT_COMPRESSION 为 false 。默认情况下这个常量属性值是 true 的也就是它会将数据压缩如果是压缩的数据那么使用这种追加函数可能会产生错误所以如果要使用 append() 这种函数就需要将这个属性设置为 false 。 set() 函数用于直接设置一个 key 的值如果它存在就相当于修改如果不存在就会创建一个新的。 最后我们还演示了 getMulti() 这个方法相比 getDelayed() 来说它就是批量获取到指定数据的值。 自增、自减操作 $m-increment(test2);
echo $m-get(test2), PHP_EOL; // 2$m-decrement(test2);
echo $m-get(test2), PHP_EOL; // 1 使用 increment() 和 decrement() 方法就可以实现对指定键的值的自增自减操作这两个函数在 redis 中也是非常常用的。 更新、删除 没有代码的演示因为比较简单replace() 用于修改delete() 用于删除也就不对它们进行过多的研究了。 Memcache 扩展 上面我们使用的都是 Memcached 这个扩展接下来我们再简单看一下 Memecache 的操作其实都是差不多的但其实 Memcached 扩展的功能会更丰富一些也就是提供的方法函数更多一些就像文章开头说的使用哪种扩展大家自己根据业务情况选择吧。 $mem new Memcache();
$mem-connect(127.0.0.1, 11211);print_r($mem-getStats());
// Array
// (
// [pid] 1713
// [uptime] 1281
// [time] 1614646206
// [version] 1.5.22
// [libevent] 2.1.8-stable
// [pointer_size] 64
// [rusage_user] 0.085507
// [rusage_system] 0.145715
// [max_connections] 1024
// ………………………………
// ………………………………
// ………………………………echo $mem-getVersion(), PHP_EOL;
// 1.5.22$mem-set(test5, e);
echo $mem-get(test5), PHP_EOL; // e 总结 关于 Memcache 相关的内容就是这些比较简单的介绍了一下它们的使用。目前或者说最近这些年真的已经没怎么见过使用 Memcache 的项目或者公司了。不管什么公司上来真的就是一套 redis 完全不考虑其它的缓存扩展了。所以这里我们也就不对 Memcache 再进行更多的研究了。 测试代码 https://github.com/zhangyue0503/dev-blog/blob/master/php/2021/03/source/1.%E5%AD%A6%E4%B9%A0%E4%BA%86%E8%A7%A3PHP%E4%B8%ADMemcached%E6%89%A9%E5%B1%95%E7%9A%84%E4%BD%BF%E7%94%A8.php 参考文档 https://www.php.net/manual/zh/book.memcache.php https://www.php.net/manual/zh/book.memcached.php
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88606.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!