• Memcache 内存对象缓存系统



    简介:

    Memcached 是一个高性能的分布式内存存储对象缓存系统,用于动态 WEB 应用以减轻数据库负载。

    它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。

    Memcached 基于一个存储键/值对的 hashmap 。

    其守护进程是用 C 写的,但是客户端可以用任何语言来编写,并通过 Memcached 协议与守护进程通信,且它不提供冗余; 当某个服务器停止运行或崩溃了,所有放在该服务器上的键/值对都将丢失。

    下载地址:

    http://jaist.dl.sourceforge.net/project/levent/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz

    https://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

    1、安装 libevent 库

    ## 这是一个 memcached 所依赖的异步事件通知库

    shell > tar zxf libevent-2.0.22-stable.tar.gz -C ../
    shell > cd ../libevent-2.0.22-stable/
    shell > ./configure ; make ; make install

    2、安装 Memcached

    shell > tar zxf memcached-1.4.15.tar.gz -C ../
    shell > cd ../memcached-1.4.15/
    shell > ./configure --prefix=/usr/local/memcached ; make ; make install

    3、启动 Memcached

    shell > /usr/local/memcached/bin/memcached -d -m 512 -p 11211 -u nobody -c 4096

    ## -l 监听地址,memcache 无身份验证功能,严禁在无防护情况下使用
    ## -d 以守护进程的形式运行
    ## -m 指定分配内存大小,单位 m
    ## -p 监听端口
    ## -u 运行用户
    ## -c 最大并发连接数
    ## -P PID 文件存放位置
    ## -f 增长因子

    ## 启动报错

    /usr/local/memcached/bin/memcached: 
    error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

    ## 解决方法

    shell > find / -name libevent-2.0.so.5
    /usr/local/lib/libevent-2.0.so.5
    shell > ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/
    shell
    > /usr/local/memcached/bin/memcached -d -m 512 -p 11211 -u nobody -c 4096
    shell
    > netstat -anpt | grep memcached tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 13465/memcached tcp 0 0 :::11211 :::* LISTEN 13465/memcached

    ## 启动成功,监听所有地址,包括 ipv6 ,这样不安全,最好 -l 指定监听 IP

    4、测试 Memcached

    ## 语法

    command <key> <flags> <expiration time> <bytes>
    <value>
    
    command 包括:set add replace get delete
    
    key               key 用于查找缓存值
    flags             可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
    expiration time   在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    bytes             在缓存中存储的字节点
    value             存储的值(始终位于第二行)
    shell > telnet 127.0.0.1 11211    # 登陆 memcached
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    set id 0 0 5                      # 保存一个值
    12345
    STORED
    get id                            # 取值
    VALUE id 0 5
    12345
    END
    replace id 0 0 5                  # 更新值
    88888
    STORED
    get id                            # 查看是否更新
    VALUE id 0 5
    88888
    END
    quit                              # 退出
    Connection closed by foreign host.
    
    shell > telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    get id                            # 重新登陆还保存着
    VALUE id 0 5
    88888
    END
    quit
    Connection closed by foreign host.
    
    shell > telnet 127.0.0.1 11211
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    get id
    VALUE id 0 5
    88888
    END
    delete id                          # 删除值
    DELETED
    get id
    END
    quit
    Connection closed by foreign host.
  • 相关阅读:
    SQL Server2005重新安装不上的问题及其解决(转)
    取消2003默认共享
    自写生成实体类工具
    双核886针CPU简明制作教程
    VS 2008 在安装SP1后智能提示变成英文的解决办法
    VS2008 安装盘的问题
    拖放 DataGrid 列摘自MSDN
    VB.net SP1 的兼容性问题
    Windows Server 2008+VS2008
    Combobox 的解决方法
  • 原文地址:https://www.cnblogs.com/wangxiaoqiangs/p/5630641.html
Copyright © 2020-2023  润新知