一、memcached概述
1、网站架构优化流程:
LNMP架构中网站应用访问流程:
浏览器 (app) → web 服务器 → 后端服务 (php) → 数据库 (mysql)
访问流程越多,访问速度越慢,出现问题的几率也越大。
网站访问流程优化思路:
① 采用高性能的负载均衡设备;
② 页面静态化;
③ 引入缓存层,如使用Redis或Memcached,来缓存频繁访问的数据;
④ 优化数据库本身。
2、mencached介绍:
许多Web应用都将数据保存到 RDBMS (关系型数据库) 中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。
Memcached 是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度, 提高可扩展性。
Web01/Web02 => memcached(内存) => MyCAT => MySQL01/MySQL02


3、安装memcached软件:
克隆CentOS7生成一个memcached服务器,修改IP、UUID、主机名、hosts文件,关闭防火墙、selinux和NetworkManager。

(1) 架构图:
(2) 编译与安装:
tar -zxf memcached-1.5.8.tar.gz
cd memcached-1.5.8
yum install libevent-devel -y
yum -y install gcc gcc-c++ autoconf automake make
./configure --prefix=/usr/local/memcached
make && make install
(3) 查看目录:
cd /usr/local/memcahced
bin:memcached 二进制程序文件
include:memcached 依赖库文件

bin/memcached -h:
-p 设置memcached监听的端口,默认为11211
-d 启动一个守护进程deamon(后台运行)
-m 分配给memcached使用的内存数量,单位是MB,默认为64M
-u 运行memcached的用户
-l 监听服务器IP地址,可以有多个地址
-c 最大运行的并发连接数,默认是1024
-P 设置保存memcached的pid文件

(4) 启动memcached软件:
bin/memcached -uroot -d :以root用户启动memcached,后台运行

4、使用Telnet连接memcached:
(1) telnet概述:
Telnet协议是TCP/IP协议族中的一部分,是Internet远程登录服务的标准协议之一。
Telnet协议允许用户通过网络连接到远程主机,并在该主机上执行命令、访问文件、查看系统状态等。
由于Telnet协议的通信内容并未加密,存在安全风险,因此在实际应用中,Telnet通常被SSH(Secure Shell)所取代,SSH提供了加密的通信通道,更安全地实现了远程访问。
(2) 安装telnet并连接memcached:
yum install telnet -y
telnet memcachedd服务器IP memcahced服务端口
回车后看到ERROR说明已经连接上memcached,ERROR是memcached对空命令的报错。

二、memcached常用管理命令
memcached操作的是计算机的内存空间,通过内存来缓存数据,其数据结构是一个key:value的键值对。
1、set命令与get命令:
(1) set 命令:
set key flag exptime bytes
set:set命令,用于设置键值对(存储数据)。
key:键名,必须是唯一的,同名会被覆盖。
flag:数据的标识位,0代表没有特殊标识。
exptime:过期时间,0代表不过期,单位为s。
bytes:存储数据的字节数。

(2) get命令:
get key
get:get命令,用于获取键值对信息(获取数据)。
key:键名,根据提供的键名,搜索指定的数据。

如果 key 不存在,则返回空:

get key1 key2
get 命令可一次获取多个键的值:

2、add命令与replace命令:
(1) add命令:
add key flag exptime bytes
add 命令用于将 value 存储在指定的 key 中,如果 add 的 key 已经存在,则不会更新。(修改键)
set 命令则会直接覆盖旧的 key。

出现NOT_STORED代表系统中已经存在了一个键名为name的键值对。
(2) replace命令:
replace key flag exptime bytes
replace 命令用于替换已存在的 key 的 value。(修改值)
如果 key不存在,则替换失败,响应 NOT_STORED。

3、append命令与prepend命令:
(1) append命令:
append key flag exptime bytes
append 命令用于向已存在 key 的 value 尾部追加数据(尾部追加)。
定义一个key=hw,存储数据hello,然后追加一个world:

(2) prepend命令:
prepend key flag exptime bytes
prepend 命令用于向已存在 key 的 value 前面追加数据(头部追加)。
定义一个name=hema,然后追加一个it到hema的前面:

4、delete命令与flush_all命令:
(1) delete命令:
delete key
delete 命令指定用于删除已存在的key。

(2) flush_all清空命令:
flush_all [time]
time:用于在指定时间后执行清空操作
清空memcached中的所有缓存的数据,生产环境下尽量不要使用。
5、计算命令与stats命令:
(1) 计算命令:
incr key value => 在原有值的基础上进行自增操作
decr key value => 在原有值的基础上进行自减操作

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



