【php精品源码栏目提醒】:网学会员鉴于大家对php精品源码十分关注,论文会员在此为大家搜集整理了“php的Memcache方法介绍及应用实例 - 软件工程”一文,供大家参考学习
使用 Memcache 在
PHP 中调试方法的介绍及应用 如果我们在网络开发中,特别是大访问量的 web 项目开发中,为了提高响应速度,减少数据查询运算,那么我们都会选用 memcahce。
首先我们必须要安装,接下来如何使用memcache,在这里介绍下在 linux 下安装和 windows 下安装如下及配置:一、linux 下的 Memcache 安装: 1.下载 memcache 的 linux 版本,注意 memcached 用 libevent 来作事件驱动,所以要先 安装有 libevent。
2. 安装 pecl::memcache。
用 pecl 命令行工具安装: pecl install memcache 或直接从
源码安装: phpize ./configure make make install二、Windows 下的 Memcache 安装: 1. 下载 memcache 的 windows 稳定版,解压放某个盘下面,比如在 c:memcached 2. 在终端(也即 cmd 命令界面)下输入 ‘c:memcachedmemcached.exe -d install’ 安装 3. 再输入: ‘c:memcachedmemcached.exe -d start’ 启动。
NOTE: 以后 memcached 将 作为 windows 的一个服务每次开机时自动启动。
这样服务器端已经安装完毕了。
4.下载 http://pecl4win.
php.net/ext.
php/
php_memcache.dll,请自己查找对应的
php 版本的文 件 5. 在 C:winntphp.ini 加入一行 ‘extensionphp_memcache.dll’ 6.重新启动 Apache,然后查看一下 phpinfo,如果有 memcache,那么就说明安装成功!三、memcached 的基本设置: -p 监听的端口 -l 连接的 IP 地址 默认是本机 -d start 启动 memcached 服务 -d restart 重起 memcached 服务 -d stopshutdown 关闭正在运行的 memcached 服务 -d install 安装 memcached 服务 -d uninstall 卸载 memcached 服务 -u 以的身份运行 仅在以 root 运行的时候有效 -m 最大内存使用,单位 MB。
默认 64MB -M 内存耗尽时返回错误,而不是删除项 -c 最大同时连接数,默认是 1024 -f 块大小增长因子,默认是 1.25-n 最小分配空间,keyvalueflags 默认是 48 -h 显示帮助四、
php.ini 中的配置:Memcache 一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的 hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。
是否在遇到错误时透明地向其他服务器进行故障转移。
memcache.allow_failover On接受和发送数据时最多尝试多少个服务器,只在打开 memcache.allow_failover 时有效。
memcache.max_failover_attempts 20数据将按照此值设定的块大小进行转移。
此值越小所需的额外网络传输越多。
如果发现无法解释的速度降低,可以尝试将此值增加到 32768。
memcache.chunk_size 8192连接到 memcached 服务器时使用的默认 TCP 端口。
memcache.default_port 11211控制将 key 映射到 server 的策略。
默认值quotstandardquot表示使用先前版本的老 hash 策略。
设为quotconsistentquot可以允许在连接池中添加/删除服务器时不必重新计算 key 与 server 之间的映射关系。
memcache.hash_strategy quotstandardquot控制将 key 映射到 server 的散列函数。
默认值quotcrc32quot使用 CRC32 算法,而quotfnvquot则表示使用FNV-1a 算法。
FNV-1a 比 CRC32 速度稍低,但是散列效果更好。
memcache.hash_function quotcrc32quotmemcache 也可以作为 session 的存储模块具体参看:memcache
PHP 的 session.save_handler. 1. memcache new Memcache 2. memcache-gtconnectlocalhost 11211 or die quotCould not connectquot 3. 4. version memcache-gtgetVersion 5. echo quotServers version: quot.version.quotltBRgtnquot 6. 7. tmp_object new stdClass 8. tmp_object-gtstr_attr test 9. tmp_object-gtint_attr 123 10. 11. memcache-gtsetkey tmp_object false 10 or die quotFailed to save data at the serverquot 12. echo quotStore data in the cache data will expire in 10 secondsltBRgtnquot 13. 14. get_result memcache-gtgetkey 15. echo quotData from the cache:ltBRgtnquot 16. 17. var_dumpget_result 我们已经安装好了,也配置好了 memcache,现在接下来如何调试 memcache.来做个测试。
先搞个表:create table tid char36 not null primary key username varchar20 not null 插点数据:insert into t values uuidLiviauuidLucyuuidSiviauuiddavid 写个简单脚本测试一下。
ltphphost 192.168.1.21:3306user webuserpasswd 123456db testconn mysql_connecthostuserpasswdmysql_select_dbdbconnsql select from t order by id descresult mysql_querysqlconnwhile row mysql_fetch_arrayresultMYSQL_ASSOCtest_key rowsql md5sqlmem new Memcachemem-gtconnectquot192.168.1.21quot 11211mem-gtsetsqltest_key MEMCACHE_COMPRESSED 600print_rmem-gtgetsqlgt 看看结果出来了。
C:gtphp -f quotd:/lamp/web2/phpinfo.phpquotArray0 gt Arrayid gt d8f1ec2a-c033-11dd-bd1a-002215c94322username gt david1 gt Arrayid gt d8f1eb9e-c033-11dd-bd1a-002215c94322username gt Sivia2 gt Arrayid gt d8f1ea9a-c033-11dd-bd1a-002215c94322username gt Lucy3 gt Arrayid gt d8f1e658-c033-11dd-bd1a-002215c94322username gt Livia现在我们已经介绍 Memcache 安装,不再赘述。
再次着重介绍 memcache 的一些常用方法。
Memcache::add // 添加一个值,如果已经存在,则返回 falseMemcache::addServer // 添加 Memcache 地址Memcache::close // 关闭一个 Memcache 的连接Memcache::connect // 打开一个到 Memcache 的连接Memcache::decrement // 对保存的某个 key 中的值进行减法操作Memcache::delete // 删除一个 Memcache 上的 key 值Memcache::flush // 刷新所有 Memcache 上保存的项目(类似于删除所有的保存的项目)Memcache::get // 从 Memcache 上获取一个 key 值Memcache::getExtendedStats // 获取进程池中所有进程的运行系统统计Memcache::getServerStatus // 获取运行服务器的参数Memcache::getStats //获取当前 Memcache 服务器运行的状态Memcache::getVersion // 返回运行的 Memcache 的版本信息Memcache::increment // 对保存的某个 key 中的值进行加法操作Memcache::pconnect // 打开一个到 Memcache 的长连接Memcache::replace // 替 换 一 个 已 经 存 在 Memcache 服 务 器 上 的 项 目 ( 功 能 类 似Memcache::set)Memcache::set // 向 Memcache 添加一个值,如果已经存在,则覆写Memcache::setCompressThreshold // 对大于某一大小的数据进行压缩Memcache::setServerParams // 在运行时修改服务器的参数下面是一些简单的用法实例,仅供参考: ltphp mem new Memcache mem-gtconnectquot127.0.0.1quot 12000 //Memcache::set 方法有四个参数,第一个参数是 key,第二个参数是 value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。
mem-gtsettest123060 //Memcache::add 方法的作用和 Memcache::set 方法类似,区别是如果 Memcache::add 方法的返回值为 false,表示这个 key 已经存在,而 Memcache::set 方法则会直接覆写。
mem-gtaddtest123060//Memcache::get 方法的作用是获取一个 key 值,Memcache::get 方法有一个参数,表示 key。
mem-gtgettest//输出为123//Memcache::replace 方法的作用是对一个已有的 key 进行覆写操作, Memcache::replace 方法有四个参数,作用和 Memcache::set 方法的相同。
mem-gtreplacetest456060 //Memcache::delete 方法的作用是删除一个 key 值,Memcache::delete 方法有两个参数,第一个参数表示 key,第二个参数可选,表示删除延迟的时间。
mem-gtdeletetest60gt 肖承湖
PHP 缓存应用:
PHP MEMCACHE 详解2010-01-28 09:38:44 来源:中国站长站综合 【大 中 小】 评论:0 条 我要投稿 收藏本文 分享至微博站长交易(http://jy.chinaz.com)帮站长赚钱 虚拟主机评测IDC 导航IDC123.COMMemcache 函数库是在 PECLPHP Extension Community Library中,主要作用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。
在 ubuntu 上安装完运行的时候报错: /usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory按照:《libeven、memcached、libmemcache 安装》中的方法,使用: sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2可以修正这个 BUG通过新得立安装
php 的 memcached 模块,注销/etc/
php5/conf.d/memcached.ini里面的“”,重启 apache,调用 phpinfo出现 memcached 的信息。
ltphp memcache new Memcache memcache-gtconnectlocalhost 11211 or die quotCould not connectquot version memcache-gtgetVersion echo quotServers version: quot.version.quotnquot gt 1. ltphp 2. memcache new Memcache 3. memcache-gtconnectlocalhost 11211 or die quotCould not conne ctquot 4. print_rmemcache-gtgetStats 5. / 6. Array 7. 8. pid gt 8052 9. uptime gt 9205 10. time gt 1205898428 11. version gt 1.2.5 12. pointer_size gt 32 13. rusage_user gt 0.008000 14. rusage_system gt 0.000000 15. curr_items gt 1 16. total_items gt 17 17. bytes gt 57 18. curr_connections gt 2 19. total_connections gt 15 20. connection_structures gt 3 21. cmd_get gt 9 22. cmd_set gt 23 23. get_hits gt 5 24. get_misses gt 4 25. evictions gt 0 26. bytes_read gt 671 27. bytes_written gt 850 28. limit_maxbytes gt 10485760 29. threads gt 1 30. 31./ 32.gt01.ltphp02.memcache new Memcache03.memcache-gtconnectlocalhost 11211 or die quotCould notconnectquot04.memcache-gtset name leo 0 3005.ifmemcache-gtadd name susan 0 3006.07. echo susan is exist 08. 09.memcache-gtreplace name lion 0 300 10.echo memcache-gtget name 11.memcache-gtdelete name 5 12.gt 01.ltphp 02.function _callback_memcache_failurehost port 03. print quotmemcache host:port failedquot 04. 05.memcache new Memcache 06.memcache-gtaddServer192.168.1.116 11211 07.memcache-gtsetServerParams192.168.1.116 11211 1 15 true 08. 09._callback_memcache_failure 10.echo memcache-gtgetServerStatus192.168.1.116 11211 11.gt 01.ltphp 02.memcache new Memcache 03.memcache-gtconnectlocalhost 11211 04.memcache-gtsettest_item 8 05.memcache-gtincrementtest_item 4 06.echo memcache-gtdecrementtest_item 7 07.// 显示 5 08.gt/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 -P/tmp/memcached.pidPHP 缓存应用:
PHP MEMCACHE 详解22010-01-28 09:38:44 来源:中国站长站综合 【大 中 小】 评论:0 条 我要投稿 收藏本文 分享至微博站长交易(http://jy.chinaz.com)帮站长赚钱 虚拟主机评测IDC 导航IDC123.COMmemcached 的服务正式启动 01.Memcache::add — 添加一个值,如果已经存在,则返回 false 02.Memcache::addServer — 添加一个可供使用的服务器地址 03.Memcache::close — 关闭一个 Memcache 对象 04.Memcache::connect — 创建一个 Memcache 对象 05.memcache_debug — 控制调试功能 06.Memcache::decrement — 对保存的某个 key 中的值进行减法操作 07.Memcache::delete — 删除一个 key 值 08.Memcache::flush — 清除所有缓存的数据 09.Memcache::get — 获取一个 key 值 10.Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统 计 11.Memcache::getServerStatus — 获取运行服务器的参数 12.Memcache::getStats — 返回服务器的一些运行统计信息 13.Memcache::getVersion — 返回运行的 Memcache 的版本信息 14.Memcache::increment — 对保存的某个 key 中的值进行加法操作 15.Memcache::pconnect — 创建一个 Memcache 的持久连接对象 16.Memcache::replace — R 对一个已有的 key 进行覆写操作 17.Memcache::set — 添加一个值,如果已经存在,则覆写 18.Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩 19.Memcache::setServerParams — 在运行时修改服务器的参数建议用面向对象的方式来测试这个库:Memcache::getVersion 方法的作用是返回运行的 Memcache 的版本信息。
Memcache::getStats 方法的作用是返回服务器的一些运行统计信息。
Memcache::getStats 方法有三个参数,第一个参数表示要求返回的类型:resetmalloc maps cachedump slabs items sizes第二个参数和第三个参数是在第一个参数设置“cachedump”时使用的。
Memcache::getExtendedStats 方法的作 用是获取进程池中所有进程的运行系统统计。
memcache_debug函数的作用是控制调试功能,前提是
php 在编译的时候使用了–enable-debug 选项,否则这个函数不会有作用。
Memcache::addServer 方法的作用是添加一个可供使用的服务器地址,Memcache::addServer 方法有 8 个参数,除了第一个参数意外,其他都是可选的,第一个参数表 示服务器的地址,第二个参数表示端口,第三个参数表示是否是一个持久连接,第四个参数表示这台服务器在所有服务器中所占的权重,第五个参数表示连接的持续 时间,第六个参数表示连接重试的间隔时间,默认为 15设置为-1 表示不进行重试,第七个参数用来控制服务器的在线状态,第 8 个参数允许设置一个回掉函数 来处理错误信息。
Memcache::setServerParams 方法的作用是在运行时修改服务器的参数,Memcache::setServerParams 方法有六个参数,Memcache::addServer 方法少了第三和第四个参数。
Memcache::getServerStatus 方法的作用是获取运行服务器的参数,两个参数分别表示的地址和端口。
Memcache::flush 方法的作用是清除所有缓存的数据,但是不会削去使用的内存空间。
Memcache::increment 方法的作用是对保存的某个 key 中的值进行加法操作,Memcache::decremen 方法的作用是对保存的某个 key 中的值进行减法操作。
PHP MEMCACHE 高级缓存应用详解 文章录入:7747.Net 责任编辑:7747.Net 269 【字体:小 大】 Memcache 函数库是在 PECLPHP Extension Community Library中,主要作 用是搭建大容量的内存数据的临时存放区域,在分布式的时候作用体现的非常明显,否则不建议使用。
本人在 ubuntu 上安装完运行的时候报错:/usr/local/memcached/bin/memcached: error while loading sharedlibraries: libevent-1.4.so.2:cannot open shared object file: No such file or directory按照:《libeven、memcached、libmemcache 安装》中的方法,使用:sudo ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2可以修正这个 BUG通过新得立安装
php 的 memcached 模块,注销/etc/
php5/conf.d/memcached.ini里面的“”,重启 apache,调用 phpinfo出现 memcached 的信息执行:ltphpmemcache new Memcachememcache-gtconnectlocalhost 11211 or die quotCould not connectquotversion memcache-gtgetVersionecho quotServers version: quot.version.quotnquotgtltphpmemcache new Memcachememcache-gtconnectlocalhost 11211 or die quotCould not connectquotprint_rmemcache-gtgetStats/ Array pid gt 8052 uptime gt 9205 time gt 1205898428 version gt 1.2.5 pointer_size gt 32 rusage_user gt 0.008000 rusage_system gt 0.000000 curr_items gt 1 total_items gt 17 bytes gt 57 curr_connections gt 2 total_connections gt 15 connection_structures gt 3 cmd_get gt 9 cmd_set gt 23 get_hits gt 5 get_misses gt 4 evictions gt 0 bytes_read gt 671 bytes_written gt 850 limit_maxbytes gt 10485760 threads gt 1 /gtltphpmemcache new Memcachememcache-gtconnectlocalhost 11211 or die quotCould not connectquotmemcache-gtset name leo 0 30ifmemcache-gtadd name susan 0 30 echo susan is existmemcache-gtreplace name lion 0 300echo memcache-gtget namememcache-gtdelete name 5gtltphpfunction _callback_memcache_failurehost port print quotmemcache host:port failedquotmemcache new Memcachememcache-gtaddServer192.168.1.116 11211memcache-gtsetServerParams192.168.1.116 11211 1 15 true_callback_memcache_failureecho memcache-gtgetServerStatus192.168.1.116 11211gtltphpmemcache new Memcachememcache-gtconnectlocalhost 11211memcache-gtsettest_item 8memcache-gtincrementtest_item 4echo memcache-gtdecrementtest_item 7// 显示 5gt/usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256-P /tmp/memcached.pidmemcached 的服务正式启动Memcache::add — 添加一个值,如果已经存在,则返回 falseMemcache::addServer — 添加一个可供使用的服务器地址Memcache::close — 关闭一个 Memcache 对象Memcache::connect — 创建一个 Memcache 对象memcache_debug — 控制调试功能Memcache::decrement — 对保存的某个 key 中的值进行减法操作Memcache::delete — 删除一个 key 值Memcache::flush — 清除所有缓存的数据Memcache::get — 获取一个 key 值Memcache::getExtendedStats — 获取进程池中所有进程的运行系统统计Memcache::getServerStatus — 获取运行服务器的参数Memcache::getStats — 返回服务器的一些运行统计信息Memcache::getVersion — 返回运行的 Memcache 的版本信息Memcache::increment — 对保存的某个 key 中的值进行加法操作Memcache::pconnect — 创建一个 Memcache 的持久连接对象Memcache::replace — R 对一个已有的 key 进行覆写操作Memcache::set — 添加一个值,如果已经存在,则覆写Memcache::setCompressThreshold — 对大于某一大小的数据进行压缩Memcache::setServerParams — 在运行时修改服务器的参数建议用面向对象的方式来测试这个库:Memcache::getVersion 方法的作用是返回运行的 Memcache 的版本信息。
Memcache::getStats 方法的作用是返回服务器的一些运行统计信息。
Memcache::getStats 方法有三个参数,第一个参数表示要求返回的类型:reset malloc maps cachedump slabsitems sizes第二个参数和第三个参数是在第一个参数设置为“cachedump”时使用的。
Memcache::getExtendedStats 方法的作用是获取.
上一篇:
STM32 USB HID双向数据传输源码
下一篇:
电咖汽车入选2018独角兽企业榜百强 发布“天际”品牌将推高估值