zoukankan      html  css  js  c++  java
  • Memcached 基本操作

    本质上,Memcached是一个简洁的key-value存储系统, 可以保存布尔,整数,浮点数,对象,数组,NULL,二进制数据(视频,音频,文件)。通过在内存中维护一张巨大的hash表.  每次客户端先访问Memcached, 如果命中直接返回数据, 否则丛数据库中查询返回给客户端. 然后更新Memcached.   

    如果Memcached存满了, 会使用LRU策略淘汰之前的对象内存.

    1. 基于C/S结构
    2. 基于libevent的时间处理大并发
    3. 内存存储系统
    4. 支持分布式(一致性哈希)

    ubuntu下安装

    sudo apt-get install memcached

    通过 telnet 命令并指定主机ip和端口来连接 Memcached 服务.

    telent 127.0.0.1 11211(默认端口)

    常用命令只有几个

    set  设置键为name, 额外标识0, 保存时间永久, 值长度, 值为ming。  如果已经存在则会进行替换.                       

    set name 0 0 4

    ming
    STORED

    add    添加新数据, 如果之前已经存在, 则不会进行更新

    replace 替换值

    append 向值的后面追加数据

    prepend  向值的前面追加数据

    get key1 key2 key3  获取键对应的值

    delete key1 key2 删除键值对

    stats  统计信息查看, PID, 连接数, 版本号等

    php操作实例

    如果没有编译 libmemcached, 先下载编译它.

    1:先下载libmemcached:
    wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
    
    2:解包:
    tar -zxf libmemcached-1.0.18.tar.gz 
    
    3:进入解压后的包,编译:
    ./configure --prefix=/usr/local/libmemcached --with-memcached 
    //注意:--with-memcached这个选项一定要加上
    4:安装
    make && make install

    安装memcached扩展

    wget http://pecl.php.net/get/memcache-2.2.7.tgz               
    tar -zxvf memcache-2.2.7.tgz
    cd memcache-2.2.7
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make && make install
    php-config  目录如果不知道, 可以find / -name php-config查找.

    成功后会出现

    Installing shared extensions:     /usr/lib/php5/20121212/

    然后在php.ini后面配置, 重启之后就可以使用了.

    extension_dir = "/usr/lib/php5/20121212/"
    extension = memcache.so

    下面是一个例子

    <?php
    $memcache = new Memcache;             //创建一个memcache对象
    $memcache->connect('localhost', 11211) or die ("Could not connect"); //连接Memcached服务器
    $memcache->set('key', 'test');        //设置一个变量到内存中,名称是key 值是test
    $get_value = $memcache->get('key');   //从内存中取出key的值
    echo $get_value;

    在YIi框架中使用

    首先进行配置

    'components' => [
        'cache' => [
            'class' => 'yiicachingMemCache',
            'servers' => [
                [
                    'host' => 'server1',
                    'port' => 11211,
                    'weight' => 100,
                ],
                [
                    'host' => 'server2',
                    'port' => 11211,
                    'weight' => 50,
                ],
            ],
        ],
    ],

    用法

     Yii::$app->cache->set('name', 'ziqing');
      echo Yii::$app->cache->get('name');

    常用函数

    Memcache::add //添加一个值,如果已经存在,则返回false
    Memcache::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 //对一个已有的key进行覆写操作
    Memcache::set //添加一个值,如果已经存在,则覆写
    Memcache::setCompressThreshold //对大于某一大小的数据进行压缩
    Memcache::setServerParams //在运行时修改服务器的参数

    这里有个坑, 在本地是可以访问memcached的, 但是远程访问需要修改配置文件/etc/memcached.conf, 否则报错.

    -l 127.0.0.1
    改为本机的IP地址
    -l 192.168.1.100 (远程ip)
  • 相关阅读:
    Python爬虫技术--基础篇--函数式编程(上篇)
    Python爬虫技术--基础篇--Python高级特性
    Python爬虫技术--基础篇--函数(下篇)
    Python爬虫技术--基础篇--函数(上篇)
    Python爬虫技术--基础篇--字典和集合
    Python爬虫技术--基础篇--列表和元组
    1013 数素数
    1012 数字分类
    1010 一元多项式求导
    1011 A+B 和 C
  • 原文地址:https://www.cnblogs.com/tanxing/p/6601024.html
Copyright © 2011-2022 走看看