memcached 快速入门

Memcache简介

Memcached是什么?
    Memcached是由Danga Interactive开发的,高性能的,分布式的内存对象缓存系统,
      用于在动态应用中减少数据库负载,提升访问速度。

Memcached能缓存什么?
    通过在内存里维护一个统一的巨大的hash表,Memcached能够用来存储各种格式的数据,
     包括图像、视频、文件以及数据库检索的结果等。

Memcached快么?
    非常快。Memcached使用了libevent(如果可以的话,在linux下使用epoll)来均衡任何数量的打开链接,
      使用非阻塞的网络I/O,对内部对象实现引用计数(因此,针对多样的客户端,对象可以处在多样的状态),
      使用自己的页块分配器和哈希表,因此虚拟内存不会产生碎片并且虚拟内存分配的时间复杂度可以保证为O(1)。
      Danga Interactive为提升Danga Interactive的速度研发了Memcached。

Memcached的特点
    Memcached的缓存是一种分布式的,可以让不同主机上的多个用户同时访问,
      因此解决了共享内存只能单机应用的局限,更不会出现使用数据库做类似事情的时候,
      磁盘开销和阻塞的发生。

缓存数据:
      1.在内存中缓存数据    2.数据形态以key->value结构     3.安全度非常差的

Memcache安装

Windows下操作

1 在网上下载memcached-1.2.1-win32.zip。解压放某个盘下面,比如在c:\memcached
    2 在终端(cmd)下:
        D:\AppServ>memcached.exe -d install     安装
        D:\AppServ>memcached.exe -d uninstall 卸载
        D:\AppServ>memcached.exe -d start     启动
        D:\AppServ>memcached.exe -d stop     停止
            memcached.exe -h  获取所有帮助
    3 在启动之后连接:
        D:\AppServ> telnet 127.0.0.1 11211   --连接memcache端口11211
        使用quit退出。
    4 其他命令参数:
        启动Memcache 常用参数
        -p <num>   设置端口号(默认不设置为: 11211)
        -U <num>   UDP监听端口(默认: 11211, 0 时关闭) 
        -l <ip_addr> 绑定地址(默认:所有都允许,无论内外网或者本机更换IP,
            有安全隐患,若设置为127.0.0.1就只能本机访问)
        -d   独立进程运行
        ... -d start 启动memcached服务 
        ... -d restart 重起memcached服务 
        ... -d stop|shutdown 关闭正在运行的memcached服务 
        ... -d install 安装memcached服务 
        ... -d uninstall 卸载memcached服务 
        -u <username> 绑定使用指定用于运行进程<username>
        -m <num>  允许最大内存用量,单位M (默认: 64 MB)
        -P <file> 将PID写入文件<file>,可以使得后边进行快速进程终止, 需要与-d 一起使用
        -M 内存耗尽时返回错误,而不是删除项 
        -c  最大同时连接数,默认是1024 
        -f 块大小增长因子,默认是1.25 
        -n 最小分配空间,key+value+flags默认是48 
        -h 显示帮助

PHP开启Memcache模块

1.phpinfo()检测是否有memcache扩展

2.php扩展目录 extension_dir
        php_memcache.dll放置到php扩展目录下

3.php配置文件修改
        extension=php_memcache.dll

4.重启apache服务

Linux下安装操作:
        
    2.1 #为php环境安装memcache扩展

首先下载php7.0支持的扩展包 pecl-memcache-php7.zip
        地址:https://github.com/websupport-sk/pecl-memcache/archive/php7.zip

1. 将pecl-memcache-php7.zip文件传到服务器上 /root
    2. 解压文件后进入此目录
       unzip pecl-memcache-php7.zip
       cd pecl-memcache-php7
    3. 由于目录中没有configure配置环境文件
       执行 /usr/local/php/bin/phpize 来准备一个编译环境
    4. 配置: 加配置
       ./configure --with-php-config=/usr/local/php/bin/php-config

5. make && make install 编译和安装

6. 安装成功后就会产生一个memcache.so文件
       /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
    7. 修改php配置文件
       vim  /usr/local/php/etc/php.ini
       添加以下信息
       722行 extension_dir=‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/‘;
             extension="memcache.so";
    8. 重启apache服务即可(查看phpinfo())

2.2 #安装memcache服务

memcached-1.4.4-3.el6.i686.rpm
    
       a.首先挂载ISO镜像文件  DVD1.ISO
               mount /dev/sr0 /mnt/cdrom/
     
       b.安装memcached
               yum -y install memcached

c.添加memcache用户
               useradd memcache

d.启动memcache服务    
               memcached -d -m 128 -l 127.0.0.1 -p 11211 -u memcache 
            
       
            查看端口     
            netstat –tunpl|grep :11211              
            win+r打开命令行窗口  连接测试
            telnet 192.168.185.252 11211     
          注意:
            如果输入telnet命令的时候 出现telnet不是内部命令
            windows系统->控制面板->程序和功能->打开和关闭Windows功能->勾选 telnet客户端
    
            stats       memcache命令:查看当前状态

e.设置开机自启动 
               chkconfig memcached on

f.如何杀掉后台进程
             pkill memcached

Memcache相关操作
    
####stats 查看状态
        STAT pid 1552                      服务进程的进程ID
        STAT uptime 3792                服务从启动到当前所经过的时间,单位是秒。
        STAT time 1262517674              服务器所在主机当前系统的时间,单位是秒。
        STAT version 1.2.6                   组件的版本。这里是我当前使用的1.2.6。
        STAT pointer_size 32             服务器所在主机操作系统的指针大小,一般为32或64.
        STAT curr_items 1                   表示存放当前的所有缓存对象的数量。不包括已经从缓存中删除的对象。
        STAT total_items 2                   表示从启动到当前,系统存储过的所有对象数量,包括已经删除的对象。
        STAT bytes 593                      表示系统存储缓存对象所使用的存储空间,单位为字节。
        STAT curr_connections 2           表示当前系统打开的连接数。
        STAT total_connections 28        表示从memcached服务启动到当前时间,系统打开过的连接的总数。

set  写入缓存
    set  键名  标记  有效时间  数据的长度
        
      set  love  10     0      10
      i love you
        键名
              最大不能超过250个字符
         标记
         是一个16位的无符号的整数,该标志将和需要存储的数据一起存储,并在客户端get数据时返回
         有效时间
              单位为秒
         数据长度
              单位是字节
         数据的值
         最大不能超过1024kb

get  获取缓存
        get  键名
        get  love

####delete  删除缓存
        delete   键名
        delete   love
        flush_all清空所有缓存

###PHP与Memcache的使用
    //实例化Memcache
    $memcache = new Memcache();
    
    //连接Memcache
    $memcache->connect(‘127.0.0.1‘,‘11211‘);
    $memcache->addServer(‘127.0.0.1‘,‘11211‘);
    
    //保存数据
    $memcache->set(‘name‘,‘xiaohigh‘,MEMCACHE_COMPRESSED,60);
    
    //获取数据
    $memcache->get(‘name‘)
    
    //清除所有数据
    $memcache->flush();

###PHP Memcahe类
    connect(ip, port)         连接一台memcache服务器 
    addServer(ip, port)     添加一台memcache服务器
    getExtendedStats()    获取连接池中所有的服务器信息
    getServerStatus(host, port)        获取指定服务器的连接状态
    add(key, value, tag, expires)             添加一条数据
    replace(key, value, tag, expires)     修改一条数据
    set(key, value, tag, expires)             添加或修改一条数据
    get(key)     根据键获取值
    delete(key) 删除指定一条数据
    flush() 删除全部
    close()  关闭连接
    getStats()     获取memcache服务器信息  返回数组
    getVersion()     获取m emcache服务器版本号

时间: 2024-10-12 22:49:18

memcached 快速入门的相关文章

Memcached快速入门

Memcached快速入门 What is Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度. 安装 Ubuntu $ sudo apt-get install memcached $ ps aux | grep memcached memcache 26355 0.0 0.0 325400 1208 ? Sl 16:30 0:00 /usr/b

Redis快速入门:初识Redis

[IT168 专稿]在之前的文章中介绍了<Redis快速入门:选择Key-Value Store>,今天给大家介绍Redis的入门知识.Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主持. 1.数据类型 作为Key-value型数据库,Redis也提供了键(Key)和键值(Value)的映射关系.但是,除了常规的数值或字符串,Redis的键值还

[你必须知道的NOSQL系列]专题二:Redis快速入门

一.前言 在前一篇博文介绍了MongoDB基本操作,本来打算这篇博文继续介绍MongoDB的相关内容的,例如索引,主从备份等内容的,但是发现这些内容都可以通过官方文档都可以看到,并且都非常详细,所以这里就不想继续介绍了,需要用到的朋友到官方文档进行查阅:http://docs.mongodb.org/manual/tutorial/remove-indexes/.本专题将介绍另一个NoSQL——Redis的相关内容. 二.Redis介绍 关于Redis大家肯定多多少少都有所了解,Redis一般都

Redis快速入门:安装、配置和操作

本文是有关Redis的系列技术文章之一.在之前的文章中介绍了<Redis快速入门:初识Redis>,对Redis有了一个初步的了解.今天继续为大家介绍Redis如何安装.配置和操作. 系列文章: Redis快速入门:Key-Value存储系统简介 Redis快速入门:选择Key-Value Store Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMwa

Celery 快速入门

Celery 快速入门 任务队列 任务队列用于分发工作给不同线程或机器. Celery通过消息传递 支持多个workers和brokers.提供高可用和水平扩展性. 用Python写的 优点 简单 高可用 快 易扩展 支持 Brokers RabbitMQ, Redis MongoDB, ZeroMQ CouchDB, SQLAlchemy Django ORM, Amazon SQS, ... Result Stores AMQP, Redis memcached, MongoDB SQLAl

Redis快速入门及应用

Redis的使用难吗?不难,Redis用好容易吗?不容易.Redis的使用虽然不难,但与业务结合的应用场景特别多.特别紧,用好并不容易.我们希望通过一篇文章及Demo,即可轻松.快速入门并学会应用.一.Redis 简介 Redis是一个开源的Key-Value存储,但又不仅仅是Key-Value存储,用官网上的话来说,Redis是一个数据结构存储,可用作数据库.缓存和消息中间件.相对于传统的Key-Value存储Memcached来说,Redis具有如下特点: 速度快 丰富的数据结构,除Stri

Flask快速入门(17) — flask_session

Flask快速入门(17) - flask_session 作用:将默认保存的签名cookie中的值,保存到 redis/memcached/file/Mongodb/SQLAlchemy 安装:pip install flask-session 使用1: from flask import Flask,session from flask_session import RedisSessionInterface import redis app = Flask(__name__) conn=r

笔记:Spring Cloud Zuul 快速入门

Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了所有其他微服务的实例信息,这样的设计非常巧妙的将服务治理体系中维护的实例信息利用起来,使得维护服务实例的工作交给了服务治理框架自动完成,而对路由规则的维护,默认会将通过以服务名作为 ContextPath 的方式来创建路由映射,也可以做一些特别的配置,对于签名校验.登录校验等在微服务架构中的冗余问题

javaweb-html快速入门

本文主要是进行HTML简单介绍(详细的属性查帮助文档就行了,这里主要为快速入门,赶时间,在最短的时间中看明白一个html文件的代码(如果能称之为代码的话)详细的样式表,布局啥的有时间再研究吧) HTML 1.html的简介 1.1,html的全称:HyperText Mark-up Language ,超文本标记型语言,是网页的语言. 超文本:比文本更加强大(后面还会讲到XML,可扩展标记性语言) 标记:就是标签,html所有操作都是通过标签直接或间接的操作(把需要操作的数据通过标签封装起来)