window下memcache 安装及练习命令

来源:互联网 发布:网络的利与弊作文800字 编辑:程序博客网 时间:2024/06/15 18:38

        以下是自学it网--中级班上课笔记

            网址:www.zixue.it

:memcached的启动

下载相应的win二进制版本,不用安装,到命令行下 memcached -h 可以看到帮助.

-p <num>      TCP port number to listen on (default: 11211) // 监听的端口

-U <num>      UDP port number to listen on (default: 0, off)

-s <file>     unix socket path to listen on (disables network support)

-a <mask>     access mask for unix socket, in octal (default 0700)

-l <ip_addr>  interface to listen on, default is INDRR_ANY

-d start          tell memcached to start

-d restart        tell running memcached to do a graceful restart

-d stop|shutdown  tell running memcached to shutdown

-d install        install memcached service // memcached注册成服务

-d uninstall      uninstall memcached service 

-r            maximize core file limit

-u <username> assume identity of <username> (only when run as root)

-m <num>      max memory to use for items in megabytes, default is 64 MB //分配给memcached的最大内存

-M            return error on memory exhausted (rather than removing items)

-c <num>      max simultaneous connections, default is 1024 // 最大的连接数

-k            lock down all paged memory.  Note that there is a

              limit on how much memory you may lock.  Trying to

              allocate more than that would fail, so be sure you

              set the limit correctly for the user you started

              the daemon with (not for -u <username> user;

              under sh this is done with 'ulimit -S -l NUM_KB').

-v            verbose (print errors/warnings while in event loop) //输出错误信息

-vv           very verbose (also print client commands/reponses) //输出所有信息

-h            print this help and exit

-i            print memcached and libevent license

-b            run a managed instanced (mnemonic: buckets)

-P <file>     save PID in <file>, only used with -d option

-f <factor>   chunk size growth factor, default 1.25 //增长因子

-n <bytes>    minimum space allocated for key+value+flags, default 48

出现以下内容则启动成功

使用telnet工具来测试.

win下为例

telnet 127.0.0.1 11211

[提示错误:'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件。]

如果提示以上问题:windows7带有telnet,只是默认没有安装而已。

解决问题:   

    1.开始–>控制面板–>程序

   2.右侧打开或者关闭windows功能
   3.找到Telnet客户端,选择安装

telnet 127.0.0.1 11211

连接,并按 ctrl+] , 再回车,打开回显,就可以做测试了.

Memcached的命令分 增删改查4,沿着这个思路来学习.

注意:在telnet 客户端下如果打错字母则就得重新开个终端他是不支持删除的

: add 往内存增加一行新记录

语法 add key flag expire length

Key  给值起一个独特的名字

Flag 标志,要求为一个正整数

Expire 有效期 

Length 缓存的长度(字节为单位)

Flag的意义:

Memcached基本文本协议,传输的东西,理解成字符串来存储.

:让你存一个PHP对象,和一个PHP数组,怎么办?

:序列化成字符串,往出取的时候,自然还要反序列成 对象/数组/json格式等等.

这时候, flag的意义就体现出来了.

Expire的意义:

设置缓存的有效期,3种格式

1:设置秒数从设定开始数,N秒后失效.

2:时间戳到指定的时间戳后失效

比如在团购网站,缓存的某团到中午12:00失效.

3: 设为0. 不自动失效.

有种误会,设为0,永久有效.错误的.

1:编译memcached,指定一个最长常量,默认是30.

所以,即使设为0,30天后也会失效.

2:可能等不到30,就会被新数据挤出去.

Replace 替换

Replace key flag expire length

参数和add完全一样

Delete 删除

Delete key

Delete key [time  seconds]

加秒数之后,是指,被删除的key,N秒内不能再用,目的是让网站上的页面缓存也代谢完毕.

Get 查询

Get key

返回key的值

Set 是设置和修改值

参数和add ,replace一样,但功能不一样.

用add如果内存中已经有name这个键,后续再add name,增不上去.

但对于已经存在的键,可以用replace进行替换/更改

set 想当于有add replace两者的功能.

Set key flag expire leng 

如果服务器无此键 ----> 增加的效果

如果服务器有此键 ----> 修改的效果.

统计命令: stas

memcached当前的运行信息统计出来

stats

STAT pid 2296 进程号

STAT uptime 4237 持续运行时间

STAT time 1370054990

STAT version 1.2.6

STAT pointer_size 32

STAT curr_items 4 当前存储的个数

STAT total_items 13

STAT bytes 236

STAT curr_connections 3

STAT total_connections 4

STAT connection_structures 4

STAT cmd_get 20

STAT cmd_set 16

STAT get_hits 13

STAT get_misses 7  // 2个参数 可以算出命中率

STAT evictions 0

STAT bytes_read 764

STAT bytes_written 618

STAT limit_maxbytes 67108864

STAT threads 1

END


缓存有一个重要的概念命中率.

命中率是指: (查询到数据的次数/查询总数)*100% 

如上, 13/(13+7) = 60+% , 的命中率.

 

Flush_all 清空所有的存储对象

缓存的5分钟法则:

如果5分钟内有可能再次访问,就有必要放在内存里,而不是硬盘里.

不要照搬这句话----要根据实际的业务来,像网站标题这样的,完全可以永久有效.

像微博这样,刷新非常快的,可以缓存30.

Memcached的内存管理  

1:内存的碎片化

如果用C,语言直接 malloc,free来向操作系统申请和释放内存时,

在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用.

这种空闲,但无法利用内存的现象,---称为内存的碎片化.

2: memcached是如何克服内存的碎片化的?

Memcached用 slab allocator 机制来管理内存.

基本原理预告把内存划分成不同尺寸的小块需要存内容时,

判断内容的大小,为其选取合理的块.

3:对于固定大小的chunk,也会有浪费如何缓解?

: 1:对于特定的网站,你可以长期的统计网站内缓存数据,按自己的网站的特点,设置chunk的大小.

4: 一般而言,观察缓存数据大小的变化规律,设置合理的生长因子. Grow factor

默认是1.25.

Memcached的过期数据删除机制

1: 当某个值过期后,并没有从内存删除只是你去get的时候,返回空.

2: 当某个新值去占用他的位置时,当成空chunk来占用.

--这个过期,只是让用户看不到这个数据而已,并没有真正删除.

这个称为 lazy expiration  ,惰性失效.

3: 如果chunk都满了又有新的值要加入要挤掉谁?

Memcached此处用的 LRU 删除机制.

(操作系统的内存管理,常用FIFO,LRU删除)

LRU: Least Recently Used  最近最少使用

FIFO: first in ,first out

原理当某个单元被请求时,维护一个计数器,通过计数器来判断最近谁最少被使用.

就把谁T.



原创粉丝点击