美文网首页
memcached存储

memcached存储

作者: 任总 | 来源:发表于2018-10-21 21:24 被阅读0次

一、什么是memcached:

memcached是一种高性能的分布式内存对象缓存系统,本质上是通用的,但是用于通过减轻数据库负载来加速动态web应用程序。

1、缓存服务器概念:

    缓存:cache,无持久存储功能;
    bypass缓存
    k/v cache,仅支持存储流式化数据;

2、研发

LiveJournal旗下的Danga Interactive研发,

3、特性:

  • k/v cache:仅可存储可序列化数据;存储项:k/v;
  • 智能性一半依赖于客户端(调用memcached的API开发程序),一半依赖于服务端;
  • 分布式缓存:互不通信的分布式集群;
  • 分布式系统请求路由方法:取模法,一致性哈希算法;
  • 算法复杂度:O(1)、性能非常好

4、清理过期缓存项:

  • 缓存耗尽:LRU
  • 缓存项过期:惰性清理机制

二、memcached的安装配置:

1、安装仓库

  • 由CentOS 7 base仓库直接提供:
  • 监听的端口:11211/tcp, 11211/udp

主程序:/usr/bin/memcached
配置文件:/etc/sysconfig/memcached
Unit File:memcached.service

  • 协议格式:memcached协议
    文本格式
    二进制格式

2、常用命令:

        统计类:stats, stats items, stats slabs, stats sizes
        存储类:set, add, replace, append, prepend
            命令格式:<command name> <key> <flags> <exptime> <bytes>  
            <cas unique>
        检索类:get, delete, incr/decr
        清空:flush_all
        
        示例:
            telnet> add KEY <flags> <expiretime> <bytes> \r
            telnet> VALUE
            
    memcached程序的常用选项:
        -m <num>:Use <num> MB memory max to use for object storage; the default is 64 megabytes.
        -c <num>:Use <num> max simultaneous connections; the default is 1024.
        -u <username>:以指定的用户身份来运行进程;
        -l <ip_addr>:监听的IP地址,默认为本机所有地址;
        -p <num>:监听的TCP端口, the default is port 11211.
        -U <num>:监听udp端口, the default is port 11211, 0代表关闭
        -M:内存耗尽时,不执行LRU清理缓存,而是拒绝存入新的缓存项,直到有多余的空间可用时为止;
        -f <factor>:增长因子;默认是1.25;
        -t <threads>:启动的用于响应用户请求的线程数;
        
    memcached默认没有认证机制,可借用于SASL进行认证;
        SASL:Simple Authentication Secure Layer
        
    API:
        php-pecl-memcache
        php-pecl-memcached
        python-memcached
        libmemcached
        libmemcached-devel
        
    命令行工具:
        memcached-tool  SERVER:PORT  COMMAND

3、命令使用示例

[root@memcached-78 ~]# yum install memcached -y
[root@memcached-78 ~]# vim /etc/sysconfig/memcached 
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
[root@memcached-78 ~]# telnet 127.0.0.1 11211 #使用telnet连接
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
stats   #查询信息
STAT pid 1235
STAT uptime 102
STAT time 1538866490
STAT version 1.4.15
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 0.000000
STAT rusage_system 0.006770
STAT curr_connections 10
STAT total_connections 11
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 0
STAT cmd_set 0
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 0
STAT get_misses 0
STAT delete_misses 0
STAT delete_hits 0
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 7
STAT bytes_written 0
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT bytes 0
STAT curr_items 0
STAT total_items 0
STAT expired_unfetched 0
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 0
END
stats slabs   #查询缓存项
STAT active_slabs 0
STAT total_malloced 0
END

add mykey 1 600 3  #添加缓存内容 过期时间600秒 3个字节
123
STORED
stats slabs        #查询操作统计
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 1
STAT 1:free_chunks 10921
STAT 1:free_chunks_end 0
STAT 1:mem_requested 73
STAT 1:get_hits 0
STAT 1:cmd_set 2
STAT 1:delete_hits 0
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT 1:touch_hits 0
STAT 4:chunk_size 192
STAT 4:chunks_per_page 5461
STAT 4:total_pages 1
STAT 4:total_chunks 5461
STAT 4:used_chunks 0
STAT 4:free_chunks 5461
STAT 4:free_chunks_end 0
STAT 4:mem_requested 0
STAT 4:get_hits 0
STAT 4:cmd_set 1
STAT 4:delete_hits 0
STAT 4:incr_hits 0
STAT 4:decr_hits 0
STAT 4:cas_hits 0
STAT 4:cas_badval 0
STAT 4:touch_hits 0
STAT active_slabs 2
STAT total_malloced 2097024
END
get mykey   获取信息
123
END
append mykey 1 600 3  #在后面添加三个字符,过期时间600秒
678
STORED
prepend mykey 1 600 7  #在前面添加7个字符,过期时间600秒
http://
STORED
get mykey
VALUE mykey 1 15
http://12345678
END
delete mykey #删除数据     
DELETED
get mykey
END

相关文章

网友评论

      本文标题:memcached存储

      本文链接:https://www.haomeiwen.com/subject/owclzftx.html