Memcached是什么?
是一个开源的,高性能,高并发的分布式缓存系统(存内存的缓存系统)
软件名称:Memcached-1.4.24.tar.gz
客户端名称:Memcache-2.25.tar.gz
Memcached的作用:
通过自身内存中缓存关系型数据库的查询结果,减少数据库自身被访问的次数,以提高动态web应用的速度,提高网站架构的并发能力和扩展性
1:电商的商品分类功能不会经常变动,可以实现放入memcache里,然后在对外进行数据访问,这个叫“数据预热”
2:作为集群sesson会话共享存储
特性:
- 协议简单,采用文本的协议,telnet/nc等命令就能操作memcached
- 支持epoll/kqueue异步I/O模型,使用libevent作为事件处理机制
- key/value键值数据类型
- 全内存缓存,效率高
- 支持分布式集群(通过一致性hash算法)
安装:
#检查是否安装
rpm -qa libevent libevent-devel nc telnet
#安装管理工具及依赖
yum install libevent libevent-devel nc telnet -y
#安装memcache
yum install memcached -y
#查看路径
which memcached
/usr/bin/memcached
#启动
memcached -m 16m -p 11211 -d -u root -c 8192
#常用参数
-m:使用多大内存(默认64,最大1024) -l 监听地址
-p:端口(默认11211) -P PID保存的文件
-d:后台运行 -M 内存不够时禁止LRU(清除数据),满了报错
-u :用户 -n key+value+flags分配的最小内存空间,默认48字节
-c:并发连接数(默认1024) -f chunk size增长因子,默认1.25
#查看端口
lsof -i:11211
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
memcached 2201 root 26u IPv4 12720 0t0 TCP *:memcache (LISTEN)
memcached 2201 root 27u IPv6 12721 0t0 TCP *:memcache (LISTEN)
memcached 2201 root 28u IPv4 12724 0t0 UDP *:memcache
memcached 2201 root 29u IPv6 12725 0t0 UDP *:memcache
#启用多实例(增加一个端口就行了)
memcached -m 16m -p 11212 -d -u root -c 8192
#语法
set key1 0 0 6
command key flags exptime(过期时间,0不过期) 写入内容value大小字节数\r\n
插入 set
查询 get
删除 delete
更新替换 replace(数据存在才会替换)
#进入memcache
telnet 127.0.0.1 11211
#写入 取出 删除 数据
set user01 0 0 7 #7字符要与下面存的内容相同
daxian1 #7个字符
STORED #成功
get user01 #通过key 取出数值
VALUE user01 0 7 #取出
daxian1 #显示
delete user01 #删除
quit #退出
#nc的用法
printf "set key1 0 0 6\r\ndaxian\r\n"|nc 127.0.0.1 11211
#取值
printf "get key1 \r\n"|nc 127.0.0.1 11211
VALUE key1 0 6
daxian
END
#删除
printf "delete key1 \r\n"|nc 127.0.0.1 11211