Memcached 是一种高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载,它通过在内存中缓存数据和对象,来加快动态数据库调用的速度,从而提高网站访问速度,提升用户体验。
不同操作系统上的安装
1、Linux 上安装 Memcached
Ubuntu/Debian:使用 apt 包管理器可以轻松安装 Memcached。
sudo apt update sudo apt install memcached sudo apt install libmemcachedtools
安装完成后,Memcached 服务会自动启动,可以使用以下命令检查状态:
sudo systemctl status memcached
CentOS/RHEL:使用 yum 包管理器进行安装。
sudo yum install memcached sudo yum install libmemcached
安装后,启动 Memcached 服务并设置开机自启:
sudo systemctl start memcached sudo systemctl enable memcached
2、Windows 上安装 Memcached
下载预编译的二进制文件,解压到某个目录(C:memcached)。
打开命令提示符,导航到解压目录,运行以下命令安装 Memcached 作为 Windows 服务:
memcached.exe d install memcached.exe d start
停止和卸载服务:
memcached.exe d stop memcached.exe d uninstall
3、MacOS 上安装 Memcached
确保已经安装了 Homebrew,然后使用以下命令安装 Memcached:
brew install memcached
启动 Memcached 服务:
brew services start memcached
Memcached 的基本配置文件
Memcached 的配置文件通常位于/etc/memcached.conf
(Linux)或相应的位置,以下是一些重要选项及其详解:
选项 | 说明 |
m 64 | 分配给 Memcached 的内存大小,单位为 MB,该值决定了 Memcached 可以缓存的数据量。 |
p 11211 | 监听端口号,默认是 11211。 |
l 127.0.0.1 | 绑定的 IP 地址,可以是本地地址(如 127.0.0.1)或网络地址。 |
c 1024 | 最大并发连接数,默认是 1024,根据服务器的资源和需求,可以调整这个值。 |
v | 启用详细日志记录,有助于调试和监控。 |
s /var/run/memcached/memcached.sock a 755 | 启用 UNIX socket,并设置 socket 文件的权限,这在某些安全性要求较高的环境中非常有用。 |
d | 以守护进程方式运行 Memcached,使其在后台运行。 |
启动与停止 Memcached 服务
1、在 Linux 上
启动 Memcached 服务:
sudo systemctl start memcached
停止 Memcached 服务:
sudo systemctl stop memcached
重启 Memcached 服务:
sudo systemctl restart memcached
查看 Memcached 服务状态:
sudo systemctl status memcached
2、在 Windows 上
启动 Memcached 服务:
memcached.exe d start
停止 Memcached 服务:
memcached.exe d stop
卸载 Memcached 服务:
memcached.exe d uninstall
3、在 MacOS 上
启动 Memcached 服务:
brew services start memcached
停止 Memcached 服务:
brew services stop memcached
重启 Memcached 服务:
brew services restart memcached
Memcached 的安全性配置
为了确保 Memcached 的安全性,特别是在生产环境中,建议进行以下配置:
1、绑定本地 IP 地址:确保 Memcached 只监听本地接口,防止外部访问:
l 127.0.0.1
2、配置防火墙:通过防火墙规则限制访问 Memcached 的端口,在 Linux 上使用 iptables:
sudo iptables A INPUT p tcp dport 11211 s 127.0.0.1 j ACCEPT sudo iptables A INPUT p tcp dport 11211 j DROP
3、启用 SASL 认证:Memcached 支持 SASL 认证,可以为连接提供额外的安全层:
安装 SASL 库:
sudo apt install libsasl2dev # Debian/Ubuntu sudo yum install sasl2devel # CentOS/RHEL
配置 SASL:编辑/etc/sasl2/smd5.conf
,添加以下内容:
pwcheck_method: saslauthd auxprop_plugin: sasldb mech_list: DIGESTMD5 SCRAMSHA256 SCRAMSHA1 PLAIN
启动 saslauthd 服务:
sudo systemctl start saslauthd sudo systemctl enable saslauthd
在 Memcached 启动参数中启用 SASL:
memcached S a mysecretkey u root d m 256 l 127.0.0.1:11211 p 11211 c 1024 P /tmp/memcached.pid
Memcached 的常用操作命令
1、set:向缓存添加新的键值对,如果键已经存在,则之前的值将被替换。
set <key> <flags> <expiration time> <bytes> <value>
示例:
set userId 0 0 512345STORED
2、add:仅当缓存中不存在键时,才向缓存中添加一个键值对,如果缓存中已经存在键,则之前的值保持不变。
add <key> <flags> <expiration time> <bytes> <value>
示例:
add userId 0 0 555555NOT_STORED
3、replace:仅当键已经存在时,才替换缓存中的键值对,如果缓存中不存在键,则返回 NOT_STORED。
replace <key> <flags> <expiration time> <bytes> <value>
示例:
replace accountId 0 0 567890NOT_STORED
4、get:检索与之前添加的键值对相关的值,这是执行大多数检索操作的命令。
get <key>
示例:
get userIdVALUE userId 0 512345ENDget companyIdVALUE companyId 0 3564ENDget bobEND
5、delete:删除 memcached 中的任何现有值,如果该键存在于缓存中,则删除该值;否则返回 NOT_FOUND。
delete <key>
示例:
delete userIdDELETEDget userIdENDdelete companyIdDELETEDget companyIdENDdelete bobNOT_FOUNDget bobEND
Memcached 的高级命令
1、gets:类似于基本的 get 命令,但 gets 返回的信息稍微多一些,包括一个标识名称/值对的“版本”标识符,这对于确保不会将现有的名称/值对设置为新值(如果该值已更新)非常有用。
gets <key>
示例:
gets userIdVALUE userId 0 512345ENDgets companyIdVALUE companyId 0 3564ENDgets bobEND
2、cas(check and set):这是一个非常便捷的 memcached 命令,需要结合使用,它用于确保不会将现有的名称/值对设置为新值(如果该值已更新),CAS 命令需要一个唯一的标记(token),这个标记是在第一次获取键值对时生成的,如果标记匹配,则设置成功;否则返回失败。
cas <key> <flags> <expiration time> <bytes> <value> <cas unique> <cas id>
示例:
cas userId 0 0 512345STORED0000000000000000000000000000000ENDcas companyId 0 0 3564STORED00000000000000000000000000000000ENDcas bobENDNOT_FOUNDget bobENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDcas companyIdENDCAScompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcas companyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompanyIdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcascompany IdENDcaI dENDcaI dENDcaI dENDcaI dENdcae dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dI dICaSeSensITiveCaSeSensITiveCaSeSensITiveCaSeSensITiveCaSeSensITiveCaSeSensITiveCaSeSensITiveCaSeSensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITIVECaSESensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSensITVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSIVeRSeNsiTIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSeSENSITIVECaSEnSitiveCaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENsITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITIVE CaSeSENSITVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSEnSVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSEnSVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSEnSVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaSeSENSTVECaS e n S V E C a S e n S V E C a S e n S V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V E C a S e n S V E S T V e C a S e n S V E S T V e C a S e n S V e C a S e S T V e C a S e n S V e C a S e n S V e C a S e n S V e S T V e C a S e n S V e T V e C a S e n S V e C a S e n S V e C a S e n S V e C a S e n S V e S T V e C a S e n S V e C a S e n S V e C a S e n S V e C a S e n S V e C a S e N S V E C a S e n S V e C a S e n S V e C a S e n S V e C a S e n S V e S T V e C a S e n S V e C a S e N S V E C a S e n S V e N T V e C a S e n S V e C a S e N S V E C a S e N S V E N T V e C a S e N S V e C a S e N S V E N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T V e S N V e N N T V e S N V e N N T V e C a S e N S V e N N T V e C a S e N S V e N N T T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N N N T V e C a S e N S V e N V e N N T V e C a S e N S V e N N N T V e C a S e N S VeN N T V e C a S e N S VeN N T V e C a S e N S VeN N T V e C a S e N S VeN N T V e C a S e N S VeN N T T V e C a S e N S VeN N T T V e C a S e N S VeN N T T V e C a S e N S VeN N T T V e C a S e N S VeN N T T V e C a SeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeN ST VeNSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVenSTVeNSTVeNSTVenSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSVTveNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNTVeNSTVeNTVeNSTVeNTVeNSTVeNTVeNSTVeNSTveNSTVeNSTveNSTVeNSTveNSTveNSTVeNSTveNSTVeNSTve NSTVe NSTVe NSTve NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVE NSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTVe NSTV ENSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NSTVe NSTVE NSTVe NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTV ENSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NSTVe NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTVE NSTV ENSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NSTVe NSTVE NSTVE NSTV ENSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NSTVe NSTVE NASTveNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NASTveNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NASTveNS TVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVeNSTVE NASTveNS TVeNSTVeNSTVeNSTVeNSTVeNSTVE NAStveNS TVeNSTVeNSTVeNSTVeNSTVE NAStveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStiveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStiveN STveNS TVeNSTVeNSTVeNSTVE NAStveN STveNS TVeNSTVeNSTVE NAStiveN STveNS TVEENSTIVeeNAStveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA StveENSTIVeeNA Stv ENSTVeNaStvENSTAstvENSTAstvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAt veNaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAt veNaStvENSTAstvENSTAstvE NaStvENSTAstvENSTAstvE NaStvENSTAt veNaStvENSTAstvENSTAstvE NaStvENSTAt veNaStvENSTAstvE NaStvENSTAt veNaStvENSTAstvE NaStvENSTAt veNaStvENSTAstvE NaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaSt vENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaSt vENSTAt veNaStvENSTAt veNaStvENSTAt veNaStvENSTAt veNaSt vENSTAt veNaStvENSTAt veNaStvENSTAt veNaSt vENSTAt veNaSt
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1230288.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复