Memcached学习笔记

1、memcached原理

memcached是一种缓存技术,可以将数据放入内存,主要目的是提速。

memcached服务维护了一张内存表(hashtable) key value,存放更新频繁且丢了也无所谓的数据

memcached 的key一般是字符串,不能重复 ;value可以放入(字符串、数值、数组、对象、布尔、二进制数据【图片/视频,用的比较少】,null)

2、memcached命令

安装memcached.exe -d -install

起服务memcached.exe -d start 或者用memcached.exe -p 11211 不能关闭控制台,关闭后服务就停了

 端口号范围(0-65535,一般0-1024都被占用)

Apache 80 mysql3306 ftp21 ssh 22 oracle1521

停服务memcached.exe -d end

查看是否成功 netstat -an 查看是否有11211端口监听

netstat -anb 查看具体是哪个程序在监听,这个指令还可以看到,那些用户连接到我们的服务器

netstat -a 查看具体主机

memcached telnet增删改查

telnet 127.0.0.1 11211

add key 名 0 存放时间(秒) 数据大小(字符)

举例add key1 0 30 5  

获取get key1


修改

set key名 0 存放时间 数据大小

replace key名 0 存放时间 数据大小

delete key名

flush_all

stats查看命中率 cmd_hits/cmd_get


Java中关于memcached常用命令的详解
http://www.php.cn/java-article-380219.html

3、memcached其他细节

mem服务的数据不是同步的,数据是分布的

把什么数据放入到哪个memcached是由客户端的mem对象决定

当执行addServer的时候,并不是立即去连接mem服务,而是通过计算,hash后才决定连接哪个mem服务,因此当大量加入服务器到连接池时,并没有多余的开销。

memcache的生命周期,从数据放入mem开始计时,直到时间到了,就销毁,如果时间为0,则表示不过期。

memcache的数据被销毁:时间到,重启memcached服务,重启机器,delete,flush

将session数据放入到memcached,session一般是放到文件中,现在流行把session放到memcached中。

将session存入memcache是以sessionid为key值,具体值存放成序列化格式:name:s:6:"suchao";city:6:"hangzhou"

http://www.php.cn/code/6921.html

4、memcached 和session比较

memcached主要的目的是提速,因此它是一种无状态的数据,即数据不和用户绑定,只要知道键值即可取到。

session数据是和用户绑定的,因此是一种有状态数据

5、memcached安全问题

如何使用memcached服务才是安全的。memcached本身没有安全机制,要把memcached放到内网。


在windows下通过启用防火墙来保护memcached,在linux iptables命令

6、什么数据放在Memcached中?

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

门户网站的新闻等

用户名密码金额等重要的数据不能放到memcached中。

7、与Redis比较

Redis(Key/value型数据库),将数据保存在内存中,并定时像硬盘中同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值