• Memcache 安装配置使用


            Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。                                                                                                            它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。
           Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

    特点

    • · 协议简单
    • · 基于libevent的事件处理
    •  内置内存存储方式
    •  memcached不互相通信的分布式

    协议

    memcached的服务器客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议
    因此,通过telnet也能在memcached上保存数据、取得数据。
     
     

    事件处理

    libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对服务器的连接数增加,也能发挥O(1)的性能。memcached使用这个libevent库,因此能在Linux、BSD、Solaris等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以参考Dan Kegel的The C10K Problem。
     

    存储方式

    为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。
    由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失
    另外,内容容量达到指定值之后,就基于LRU(Least Recently Used)算法自动删除不使用的缓存。
    memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。

    通信分布式

    memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。
    各个memcached不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。
     
    安装:
    这里使用 yum安装
    memcache 依赖于 libevent驱动,请先安装libevent
    # yum install libevent libevent-devel
    # yum install memcached
    配置启动:
    # memcached -d -m 10 -p 12000 -c 256 -u root
     
    # memcached --help

    memcached 1.5.3
    -p, --port=<num> TCP port to listen on (default: 11211)                        监听端口 (tcp)
    -U, --udp-port=<num> UDP port to listen on (default: 11211, 0 is off)   监听端口   (udp)
    -s, --unix-socket=<file> UNIX socket to listen on (disables network support)
    -A, --enable-shutdown enable ascii "shutdown" command       允许客户端发送shutdown 关闭memcache进程
    -a, --unix-mask=<mask> access mask for UNIX socket, in octal (default: 0700)
    -l, --listen=<addr> interface to listen on (default: INADDR_ANY)      监听地址、默认所有
    -d, --daemon run as a daemon   以守护进程方式运行
    -r, --enable-coredumps maximize core file limit
    -u, --user=<user> assume identity of <username> (only when run as root)   仅当root启动时 要指定运行用户
    -m, --memory-limit=<num> item memory in megabytes (default: 64 MB)   设置可使用内存大小、默认64M
    -M, --disable-evictions return error on memory exhausted instead of evicting
    -c, --conn-limit=<num> max simultaneous connections (default: 1024)   允许多少客户端连接
    -k, --lock-memory lock down all paged memory
    -F, --disable-flush-all disable flush_all command     禁止客户端使用刷新命令

    -v, --verbose verbose (print errors/warnings while in event loop)
    -vv very verbose (also print client commands/responses)
    -vvv extremely verbose (internal state transitions)
    -h, --help print this help and exit
    -V, --version print version and exit

     
     使用语法:

    五种基本 memcached 命令执行最简单的操作。这些命令和操作包括:

    set     强制新增
    add     新增
    replace 替换 
    get     取值
    delete  删除
     

    前三个命令是用于操作存储在 memcached 中的键值对的标准修改命令。它们都非常简单易用,且都使用如下 所示的语法:

    复制代码
    command <key> <flags> <expiration time> <bytes>
    <value>
    
    参数说明如下:
    command set/add/replace
    key       key 用于查找缓存值
    flags     可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
    expiration time     在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
    bytes     在缓存中存储的字节数
    value     存储的值(始终位于第二行)
    get 取值  delete 删除键值  更简单
    get|delete key 

    查看状态   stats

    清理缓存中所有键值  flush_all

    追加数据(原数据后)  append 

    追加数据(原数据前)  prepend

    连接:
    许多语言都实现了连接memcached的客户端,其中以Perl、PHP为主。仅仅memcached网站上列出的语言就有
    · Perl
    · PHP
    · Python
    · Ruby
    · C#
    · C/C++
    · Lua
     
    这里简单使用 telnet和nc 来连接memcache
    # telnet localhost 11211
    Trying 127.0.0.1
    Connected to localhost.localdomain (127.0.0.1).
    Escape character is '^]'.
    set foo 0 0 3                   (保存命令)
    bar                                   (数据)
    STORED                        (结果)
    get foo                            (取值)
    VALUE foo 0 3              (数据)
    bar                                   (数据)
  • 相关阅读:
    手把手带你画一个 时尚仪表盘 Android 自定义View
    新手自定义view练习实例之(二) 波浪view
    新手自定义view练习实例之(一) 泡泡弹窗
    增加辅助的数据库组件
    解决Plugin is too old,please update to a more recent version,or set ANDROID_DAILY_OVERRIDE..
    Android 自定义View -- 简约的折线图
    android 开源图表库MPChart最简单使用方法示例教程Demo--折线图 柱状图
    改善database schema
    题解报告:hdu 2057 A + B Again
    hdu 2087 剪花布条(KMP入门)
  • 原文地址:https://www.cnblogs.com/centos2017/p/7942127.html
Copyright © 2020-2023  润新知