memcache安装使用

来源:互联网 发布:斗战三国志进阶数据 编辑:程序博客网 时间:2024/06/02 04:15

声明:

      此文章是观看韩顺平老师教程时,自己整理的笔记,与韩老师上课时所作的笔记类似。

1.    memcahe提高数据访问速度。将数据放入内存中。

(1)直接查询:读取需要的数据

(2)使用真静态:从磁盘中读取数据。

(3)使用mencache:从内存中获取数据。


2.    memcahe维护了一张内存表(hashtable)用键值对存放数据。

Key   value

100    10

说明:memcahe的key一般是字串不能重复。否则就会被冲掉。

      Value可以放入字符串、数值、布尔值、数组、对象、二进制


3.    安装使用memcached

(1)下载memcached软件  减压后。

(2)打开cmd cd到memcached.exe存放的地方

(3)然后安装指令:memcached.exe –d install

启动memcached

(1) 到计算机管理/服务和应用程序处启动

(2) 命令行启动:memcached.exe –d start

(3) 使用netstat –an 如果看到11211端口在监听,就说明启动成功。

说明:使用netstat –an还可以看到那些IP正在访问这个服务器。

      使用netstat –anb可以查看哪个程序正在使用哪个端口。

(4) memcached常用命令:


memcached的基本命令(安装、卸载、启动、配置相关)
-p 监听的端口
-l 连接的IP地址, 默认是本机  
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB

-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

 

 

 

memcached的基本命令(memcached启动后用于对memcached管理的数据和本身运行状态相关的命令)

Command

Description

Example

get

Reads a value

get mykey

set

Set a key unconditionally

set mykey 0 60 5

add

Add a new key

add newkey 0 60 5

replace

Overwrite existing key

replace key 0 60 5

append

Append data to existing key

append key 0 60 15

prepend

Prepend data to existing key

prepend key 0 60 15

incr

Increments numerical key value by given number

incr mykey 2

decr

Decrements numerical key value by given number

decr mykey 5

delete

Deletes an existing key

delete mykey

flush_all

Invalidate specific items immediately

flush_all

Invalidate all items in n seconds

flush_all 900

stats

Prints general statistics

stats

Prints memory statistics

stats slabs

Prints memory statistics

stats malloc

Print higher level allocation statistics

stats items

 

stats detail

 

stats sizes

Resets statistics

stats reset

version

Prints server version.

version

verbosity

Increases log level

verbosity

quit

Terminate telnet session

quit

 

对查看的信息的关键字中英文对照表

pid

memcache服务器的进程ID

uptime

服务器已经运行的秒数

time

服务器当前的unix时间戳

version

memcache版本

pointer_size

当前操作系统的指针大小(32位系统一般是32bit)

rusage_user

进程的累计用户时间

rusage_system

进程的累计系统时间

curr_items

服务器当前存储的items数量

total_items

从服务器启动以后存储的items总数量

bytes

当前服务器存储items占用的字节数

curr_connections

当前打开着的连接数

total_connections

从服务器启动以后曾经打开过的连接数

connection_structures

服务器分配的连接构造数

cmd_get

get命令(获取)总请求次数

cmd_set

set命令(保存)总请求次数

get_hits

总命中次数

get_misses

总未命中次数

evictions

为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)

bytes_read

总读取字节数(请求字节数)

bytes_written

总发送字节数(结果字节数)

limit_maxbytes

分配给memcache的内存大小(字节)

threads

当前线程数


4.使用memcached如何进行增删改查。

(1)通过PHP程序操作用的最多。

        (1)memcache扩展操作

        (2)memcached扩展操作

        (3)直接使用socket编程来操作

(2)telnet工具操作

 

Telnet操作:

(1)登录到telnet链接到memcached服务。

telnet  127.0.0.1(要链接服务器的IP地址)  11211

(2)增加

基本语法:add key1(键名)  0(占位符) 30(保存时间) 5(值的长度)  回车后  输入值

(3)获取

基本语法:get key1(键值)

(4)修改

基本语法:set key1 0 存放时间 值大小(key1不存在增加)

或者使用:replace key1  0  存放时间  值大小(key1不存在失败) 

(5)删除

delete key1


使用PHP程序操作memcached服务(curd):

(1)把对应版本的php_memcache.dll文件下载保存到php的ext下。

(2)修改php.ini文件:extension=php_memcache.dll(上面的dll文件名。)

(3)重启apache


使用直接使用socket编程来操作:

(1)别人写好的函数源码,直接操作。


5.memcached机制深入了解。

(1)使用memcached是基于CS结构。Memcached作为服务器。

(2)基于libevent的事件处理并发机制。

(3)数据放入内存中。

(4)基于客户端分布式。

说明:

(1)生命周期:若把时间设为0,则表示永不过期。

(2)重启memcached服务,那么里面的数据都会销毁。

(3)如何把session数据放入memcached中。

        (1)在php.ini中配置  在[Session]中修改:

session.save_handler = memcache(设置以何种方式存放)

session.save_path ="tcp://127.0.0.1:11211"(设置session存放路径)

                     说明:这样就可以将session保存到memcached中,我们不用管它如何保存,我们依然用$_SESSION[]取出该值。

        (2)或者在页面中使用ini_set()改变当前页面的php.ini中配置。

ini_set(“session.save_handler”,” memcache”);

ini_set(“session.save_path”,” tcp://127.0.0.1:11211”);

 

(4)memcahe数据是无状态的,不和任何用户绑定。       

(5)memcache安全性。将memcached放到内网。然后设置防火墙。

(6)什么样的数据适合放入memcached中?

          (1)变化频繁,具有不稳定性的数据,不需要实时入库, (比如用户在线状态、在线人数..)

          (2)门户网站的新闻等,觉得页面静态化仍不能满足要求,可以放入

(7)Redis(Key/value型数据库)技术与memcache类似,将数据保存在内存中,并定时向硬盘中同步





0 0