memcache使用

简介:

 一、Memcache概述

      官网:http://memcached.org/ Memcache(内存,缓存 是一个高性能的分布式的内存对象缓存系统。通过在内存里维护一个巨大的hash表。       key=value

                             Hash

key

value

mystr

“abc”

myarr

Array(“aa”, “cc”);

object

Object

        就是一个软件(服务软件) c/s软件 

       Mysql              129.12.121.11   3306

       Apache             www.baidu.com  80

      

       维护内存,是将数据在内存中使用, 减少I/O  150k 开源

        129.121.11.111   11211

      

二、Memcache工作原理

       Memcache 软件, memcached

       http   httpd

       vsftp   vsftpd

       c/s软件 

       memcached是以守护程序方式运行于一个或多个服务器中,随时会接收客户端的连接和操作。

       客户端使用各种语言去编写 PHP/java/c/c++/perl/python/ruby

       libevent    

三、为什么要在WEB中使用Memcache 

              基于libevent事件

              Linux

              安装libevent

                     ./configure –with-libevent=/usr

                     Make && make install

               安装memcached

                     ./configure –with-libevent=/usr

                      Make && make install

                  启动Memcahced –d –m 128 –l 192.168.1.111 –p 11211 –u root

                  停止: kill `cat /tmp/memcached.pid`;

                     Killall  memcached             

四、安装Memcache服务器(LinuxWindow上分别安装)

 Windows

  安装与卸载:memcahced.exe  -d  install [uninstall]

  启动:memcached.exe –d  -m 50 –l 127.0.0.1  -p 11211 start

 五、Memcached服务器的管理(启动)

              memcached的基本设置:
-p 
监听的端口 
-l 
连接的IP地址默认是本机 
-d start 
启动memcached服务 
-d restart 
重起memcached服务 
-d stop|shutdown 
关闭正在运行的memcached服务 
-d install 
安装memcached服务 
-d uninstall 
卸载memcached服务 
-u 
以的身份运行 (仅在以root运行的时候有效
-m 
最大内存使用,单位MB。默认64MB ,最大好像2G
-M 
内存耗尽时返回错误,而不是删除项 
-c 
最大同时连接数,默认是1024 
-f 
块大小增长因子,默认是1.25 
-n 
最小分配空间,key+value+flags默认是48 
-h 
显示帮助

六、操作Memcached (命令行方式telnet作为客户端)

               telnet  192.168.1.128  80   ---  apache

              telnet 192.168.1.129  21     --- ftpd

              telnet 192.168.1.111   22    ---ssh

               telnet localhost 11211  ---memcached             

七、如何遍历memcache

 

八、在PHP程序中使用Memcached

       PHP安装Memcache扩展

        PHP什么地方使用memcache

        实例 

九、Memcache的安全(不让别人访问)

  安装然后开始 memcached -d start

pid

memcache服务器的进程ID

uptime

服务器已经运行的秒数

time

服务器当前的unix时间戳

version

memcache版本

pointer_size

当前操作系统的指针大小(32位系统一般是32bit

rusage_user

进程的累计用户时间

rusage_system

进程的累计系统时间

curr_items

服务器当前存储的items数量

total_items

从服务器启动以后存储的items总数量

bytes

当前服务器存储items占用的字节数

curr_connections

当前打开着的连接数

total_connections

从服务器启动以后曾经打开过的连接数

connection_structures

服务器分配的连接构造数

cmd_get

get命令(获取)总请求次数

cmd_set

set命令(保存)总请求次数

get_hits

总命中次数

get_misses

总未命中次数

evictions

为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items

bytes_read

总读取字节数(请求字节数)

bytes_written

总发送字节数(结果字节数)

limit_maxbytes

分配给memcache的内存大小(字节)

threads

当前线程数

 

具体可以参考PHP手册 “LXXXIV. Memcache Functions” 这章。
  Memcache面向对象的常用接口包括:
  Memcache::connect -- 打开一个到Memcache的连接
  Memcache::pconnect -- 打开一个到Memcache的长连接
  Memcache::close -- 关闭一个Memcache的连接
  Memcache::set -- 保存数据到Memcache服务器上
  Memcache::get -- 提取一个保存在Memcache服务器上的数据
  Memcache::replace -- 替换一个已经存在Memcache服务器上的项目(功能类似Memcache::set
  Memcache::delete -- Memcache服务器上删除一个保存的项目
  Memcache::flush -- 刷新所有Memcache服务器上保存的项目(类似于删除所有的保存的项目)
  Memcache::getStats -- 获取当前Memcache服务器运行的状态
  Memcache::addServer -- 分布式服务器添加一个服务器

10、常用命令

memcached数据存储和取回相关的基本命令只有4条。下面将采用telnet与memcached进行交互,并介绍这4条基本命令。假设memcached服务器在本机上,并监听在默认端口11211上。

telnet连接到memcached:telnet 127.0.0.1 11211

SET:添加一个新的条目到memcached,或是用新的数据替换掉已存在的条目

set test1 0 0 10
testing001
STORED

ADD:仅当key不存在的情况下存储数据。如果一个key已经存在,将得到NOT_STORED的响应

add test1 0 0 10
testing002
NOT_STORED
add test2 0 0 10
testing002
STORED

REPLACE:仅当key已经存在的情况下存储数据。如果一个key不存在,将得到NOT_STORED的响应

replace test1 0 0 10
testing003
STORED
replace test3 0 0 10
testing003
NOT_STORED

GET:从memcached中返回数据。从缓存中返回数据时,将在第一行得到key的名字,flag的值和返回的value的长度。真正的数据在第二行,最后返回END。如果key并不存在,那么在第一行就直接返回END。

get test1
VALUE test1 0 10
testing003
END
get test4
END
get test1 test2
VALUE test1 0 10
testing003
END

注:像上面那样你可以在一个请求中包含多个由空格分开的key。当请求多个key时,将只会得到那些有存储数据的key的响应。memcached将不会响应没有存储Data的key。 


本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/641782,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 人工智能 供应链
客户案例 | 60天内完成中国部署,士卓曼做对了哪3件事?
士卓曼携手阿里云上的Salesforce,2个月完成部署,兼顾全球统一治理与本地合规(数据驻留、医疗监管)、敏捷迭代及微信/AI等本土化创新,打造跨国企业本土化落地标杆范本。
|
9月前
|
机器学习/深度学习 数据采集 搜索推荐
手表只会报步数?别闹了,用神经网络优化健康监测才是王道
手表只会报步数?别闹了,用神经网络优化健康监测才是王道
351 24
|
4月前
|
存储 弹性计算 缓存
阿里云服务器怎么选择?2026年阿里云 ECS 实例选型新手指南
在选购阿里云 ECS 实例时,核心是结合业务场景、性能需求与成本预算,平衡 “计算 - 网络 - 存储” 三大资源,避免过度配置或性能瓶颈。无论是个人开发者的轻量应用,还是企业的生产级业务,都需先明确负载特征(如并发量、数据量、IO 需求),再匹配实例规格、CPU 内存配比、带宽与存储类型。下面从实例规格认知、核心资源选型逻辑、不同用户适配方案三方面,用通俗语言详解选型方法。
|
8月前
|
机器学习/深度学习 人工智能 监控
提示词工程深度实践:从基础原理到生产级应用优化
蒋星熠Jaxonic,技术探索者,专注AI与提示词工程。分享提示词设计精髓,涵盖基础理论、高级模式与工程架构,助力开发者高效驾驭大语言模型,提升AI应用实战能力。
|
5月前
|
数据采集 SQL 数据可视化
数据处理的流程是什么?如何进行数据预处理?
本文深入浅出地讲解了数据处理的核心环节——数据预处理,剖析了原始数据常见的缺失、错误、重复、不一致等问题,并提供可落地的四步操作指南:诊断问题、制定规则、执行清洗、检验调整。强调“垃圾进,垃圾出”,预处理是数据可信分析的基石,并建议结合业务理解与工具(如FineDataLink)提升效率,助力从零起步的数据团队逐步实现规范化、自动化处理。
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。
|
编解码 前端开发 vr&ar
从零开始的PICO教程(4)--- UI界面绘制与响应事件
这篇文章是PICO开发系列教程的第四部分,主要介绍了如何在PICO 4 VR环境中创建UI界面,包括Canvas和Panel的配置、UI元素的绘制、以及Button和Slider的事件响应绑定,并通过示例展示了数字增减和滑块功能的具体实现。
从零开始的PICO教程(4)--- UI界面绘制与响应事件
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的校园二手交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的校园二手交易平台附带文章源码部署视频讲解等
370 2
|
NoSQL 前端开发 Java
技术笔记:springboot分布式锁组件spring
技术笔记:springboot分布式锁组件spring
406 1