Memcache简介与运维

发布时间:2024年01月12日

? ? ? ??开源、高性能、高并发的分布式内存缓存系统。

作用

????????缓存关系型数据库的结果,减少数据库自身访问的次数。

常见内存缓存服务软件对比

memcache? ????????????????????????????纯内存

redis、memcachedb ??????????????可持久化存储,同时会使用磁盘存

常见工作流程

????????数据被缓存在事先分配的memcached管理的内存中,可通过API或命令方式存取内存中缓存的这些数据,每条数据都是以key-value键值对形式存在。浏览器优先访问Memcached缓存,如果没有采取读取数据库。

memcache在企业中的应用场景

1、作为数据库的查询数据缓存;

2、作为集群节点的session会话共享存储,即把客户端用户请求多个前端应用服务器集群产生session会话信息统一存储到一个memcached缓存中。

memcached协议简单,采用基于文本行协议,能通过telnet/nc 等命令直接操作。

支持分布式集群部署

????????分布式memcached集群的不同服务之间是互不通信的每个节点都是独立存取数据的,通过对web应用端的程序设计或通过支持hash算法的负载均衡软件,可以让memcached支持海量分布式缓存集群应用。

工作原理

????????C/S模式,在服务器端启动memcached服务守护进程,可以指定监听服务器的ip地址,端口号,并发访问连接数及分配的内存等参数来处理客户端的请求。

基本管理

启动:memcached -d -p 11211 -u memcache -m 64 -c 1024 -P /tmp/memcached.pid

相关参数选项介绍
-d 启动一个守护进程
-p 设置memcaced监听的端口号
-u 设置启动memcached进程的用户
-m 分配给memcached使用内存的大小,单位MB
-c 最大允许的并发连接数,默认1024
-l 设置监听的服务器ip,可以理解为绑定的网卡,如果设置127.0.0.1,则只能本机连接,设置本机对外网卡的ip者都能连。
-P 设置保存memcached的pid文件路径。

启动多实例:使用不同的端口号即可。

连接memcached

telnet IP 11211

memcached命令语法

(0)quit 退出memcache
(1)set
set key flags exptime bytes [noreply]
value
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
exptime 缓存时间,单位是秒,0表示永远
bytes 缓存中存储的字节数
noreply 告知服务不需要返回数据
返回结果:stored、error

set userId 0 0 5
12345
STORED

(2)add(用于添加不存在的键,如果存在,不改变键值)
用法和set相同
(3)replace(替换已经存在的键值,如果不存在,替换失败)
语法和set相同
(4)append  向后追加(用于对已存在的键追加值)
语法和set相同
(5)prepend 向前追加(用于已存在的键)
(6)cas (check and set) 用于执行一个检查并设置的操作,用于已存在键
cas key flags exptime bytes  unique_cas_token【noreply】
value

set c 0 900 9  
memcached
STORED
gets c
VALUE c 0 9 6 //6位token值
memcached
END
cas c 0 900 5 6
abcde
STORED
get c
VALUE c 0 5
abcde
END
(7)get  用于查看,可跟多个键
set userId 0 0 5
STORED
get userId
VALUE userId 0 5
END
(8)gets  可以得到cas需要的token值
gets userId
VALUE userId 0 5 4
12345
END
(9)delete key
(10)incr key 1   key的value值加1
(11)decr key 1   key的value值减1
(12)stats 显示当前memcache的统计数据
(13)flush_all  清空所有键值对

文章来源:https://blog.csdn.net/lurenyi168/article/details/135559489
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。