memcache服务端与客户端的安装部署
1)安装memcached前需要先安装libevent
1 2 3 4 | [root@aliyun tools] # tar -zxf libevent-1.4.13-stable.tar.gz [root@aliyun tools] # cd libevent-1.4.13-stable [root@aliyun libevent - 1.4 . 13 - stable] # ./configure [root@aliyun libevent - 1.4 . 13 - stable] # make && make install |
2)安装memcahced服务
1 2 3 4 | tar - zxf memcached - 1.4 . 13.tar .gz cd memcached - 1.4 . 13 . / configure make && make install |
3)启动服务
1 2 3 4 5 | [root@weiwei memcached - 1.4 . 13 ] # memcached -m 16m -p 11211 -d -u root -c 8192 给多少内存要自己算,根据需求 还可以同时起几个 [root@weiwei memcached - 1.4 . 13 ] # memcached -m 16m -p 11212 -d -u root -c 8192 [root@weiwei memcached - 1.4 . 13 ] # memcached -m 16m -p 11213 -d -u root -c 8192 |
4)存数据取数据
1 2 3 4 | 操作memcached命令的语法: set key 0 0 10 <command name> <key> <flags><exptime><bytes>\r\n 过期时间 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | #存储 [root@weiwei ~] # printf "set key008 0 0 10\r\noldboy0987\r\n" | nc 127.0.0.1 11211 STORED #查询 [root@weiwei ~] # printf "get key008\r\n"|nc 127.0.0.1 11211 VALUE key008 0 10 oldboy0987 END #删除 [root@weiwei ~] # printf "delete key008\r\n"|nc 127.0.0.1 11211 DELETED 也可以telnet登录,,然后操作,但是不是很建议,不方便 |
5)安装memecache客户端
1 2 3 4 5 6 7 8 9 | tar - zxf memcache - 2.2 . 5.tgz cd memcache - 2.2 . 5 / application / php / bin / phpize . / configure - - with - php - config = / application / php / bin / php - config - - enable - memcache - - with - zlib - dir echo $? make && make install ll / application / php5. 3.27 / lib / php / extensions / no - debug - non - zts - 20090626 / total 244 - rwxr - xr - x. 1 root root 246624 Sep 25 20 : 09 memcache.so |
6)因为配置客户端所以要配置php.ini文件
1 2 3 4 5 6 | 改为如下: winodows的不要改 extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/" 并添加一行 extension = memcache.so |
7)然后重启php,查看是否生效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | pkill php - fpm / application / php / sbin / php - fpm phpinfo();查看有没有相应的模块 用php脚本的方式查看 <?php $memcache = new Memcache; / / 创建一个memcache对象 $memcache - >connect( '127.0.0.1' , 11211 ) or die ( "Could not connect" ); / / 连接Memcached服务器 $memcache - > set ( 'key001' , 'oldboy001' ); / / 设置一个变量到内存中,名称是key001值是oldboy001 $memcache - > set ( 'key002' , 'oldboy002' ); / / 设置一个变量到内存中,名称是key002值是oldboy002 $get_value01 = $memcache - >get( 'key001' ); / / 从内存中取出key001的值 $get_value02 = $memcache - >get( 'key002' ); / / 从内存中取出key002的值 echo $get_value02. "<br>" ; echo $get_value01; ?> 结果: oldboy002 oldboy001 |
8)memcached如何实现集群中的session共享存储
1 2 3 4 5 6 7 8 9 10 11 12 | 在php.ini文件中修改,所有的web服务器都改这两个地方就可以共享存储session了,每个WEB服务安装个客户端就好,然后去吧 1 )session.save_handler = memcache 2 )session.save_path = "tcp://192.168.222.128:11211" 优点: 1 )memcached是内存缓存,在读写速度上会比普通files时快很多。 2 )可以解决多个服务器共用session的难题。 缺点: 1 )session数据都保存在memory中,持久化方面有所欠缺,但对session数据来说不是问题。 2 )也可以用其他的持久化系统存储sessions,例如:redis,ttserver。 3 )高性能高并发场景,cookies的效率比session要好很多,因此,很多大网站都会用cookies解决会话共享问题。 |
9)memcached服务的状态信息如何获取?例如:命中率
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | [root@weiwei ~] # printf "stats\r\n"|nc 127.0.0.1 11211 STAT pid 10813 STAT uptime 8917 STAT time 1506348783 STAT version 1.4 . 13 STAT libevent 1.4 . 13 - stable STAT pointer_size 64 STAT rusage_user 0.237963 STAT rusage_system 0.306953 STAT curr_connections 10 STAT total_connections 17 STAT connection_structures 11 STAT reserved_fds 20 STAT cmd_get 4 STAT cmd_set 4 STAT cmd_flush 0 STAT cmd_touch 0 STAT get_hits 3 STAT get_misses 1 STAT delete_misses 0 STAT delete_hits 1 STAT incr_misses 0 STAT incr_hits 0 STAT decr_misses 0 STAT decr_hits 0 STAT cas_misses 0 STAT cas_hits 0 STAT cas_badval 0 STAT touch_hits 0 STAT touch_misses 0 STAT auth_cmds 0 STAT auth_errors 0 STAT bytes_read 191 STAT bytes_written 178 STAT limit_maxbytes 16777216 STAT accepting_conns 1 STAT listen_disabled_num 0 STAT threads 4 STAT conn_yields 0 STAT hash_power_level 16 STAT hash_bytes 524288 STAT hash_is_expanding 0 STAT expired_unfetched 0 STAT evicted_unfetched 0 STAT bytes 160 STAT curr_items 2 STAT total_items 3 STAT evictions 0 STAT reclaimed 0 图形化的界面管理工具,,状态的信息 memadmin |
10)memcached需要监控那些 指标
1)端口11211
2)命中
3)反应时间
4)模拟用户监控
php程序:curl http://ip/check_mc.php|grep oldboy|wc -l
memcahce持久化存储,,,ttserver
11)memcached状态查看
1 2 3 4 5 6 | stat settings可以查看一些memcached设置 例如 线程数 stats slabs 查看slabs相关情况 stats items 查看Items相关情况 stats sizes查看存在的Item个数和大小 stats cachedump 查看key value stats reset 清理统计数据 |
12)pkill关闭会关闭掉所有的进程,但是如果此时是多实例的状态,就应该指定pid去关闭
1 2 3 | memcached - m 16m - p 11212 - d - u root - c 8192 - P / var / run / 11212.pid memcached - m 16m - p 11213 - d - u root - c 8192 - P / var / run / 11213.pid kill `cat / var / run / 11212.pid ` |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
· SQL Server统计信息更新会被阻塞或引起会话阻塞吗?
· 本地部署 DeepSeek:小白也能轻松搞定!
· 传国玉玺易主,ai.com竟然跳转到国产AI
· 自己如何在本地电脑从零搭建DeepSeek!手把手教学,快来看看! (建议收藏)
· 我们是如何解决abp身上的几个痛点
· 如何基于DeepSeek开展AI项目