自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Redis的持久化

主要包括持久化、主从复制、哨兵和Cluster集群。持久化是最简单的高可用方法(有时甚至不被归为高可用的手段),主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。由于AOF持久化的实时性更好,

2022-07-02 13:43:00 373 1

原创 Docker的数据管理

用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。数据卷(Data Volumes)数据卷容器(Data Volume Dontainers)本文将首先介绍如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数据卷中。接下来,会介绍如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实现数据的备份和恢复。数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机的目录挂载到数据卷上,对

2022-06-28 17:22:06 305

原创 Docker的资源控制

容器的配置相关目录在 /sys/fs/cgroup/cpu/docker/下我们再进行压力测试,来看看cpu是否被限制了使用率在50%左右。top 命令查看示例:我们前面创建的z1的容器,都是默认值,cpu.cfs_quota_us为100000,现在我们对配置文件修改分别进入容器c1和c2安装上面的stress然后分别执行如下命令对磁盘Io配额控制(blkio)的限制创建容器,并限制写速度...

2022-06-28 15:15:21 531

原创 docker网络

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。Docker网桥是宿主机虚拟出来的,并不是真实存在的网络设备,外部网络是无法寻址到的,这也意味着外部网络无法直接通过Container-IP访问到容器,如果容器不希望外部

2022-06-27 22:31:17 1446

原创 Docker简介以及Docker的基本管理命令

我们在了解 docker得先区分清楚两个概念,容器和虚拟机。我们用的传统虚拟机如 , 之类的需要模拟整台机器包括硬件,每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。而容器技术是和我们的宿主机共享硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。容器技术是实现操作系统虚拟化的一种途径,可以让您在资源受到隔

2022-06-27 18:58:18 537

原创 Nginx+keepalived负载均衡高可用

结构图配置两台节点web服务器(192.168.239.30、192.168.239.40 )配置第一台节点服务器(192.168.239.30)这里我用的tomcat作为web服务器当然也可以用nginx与apache作为web服务器配置与第一台tomcat一致唯一不同站点目录网页文档用于区分实现负载均衡访问测试关闭主负载调度器的keepalived服务再次测试此时备负载调度器则会将自己转为Master设备再次访问任然可以访问3)...

2022-06-26 15:49:50 493

原创 LVS负载均衡群集-DR群集

在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址。在局域网中具有相同的地址,势必会造成各服务器ARP通信的紊乱对节点服务器进行处理,使其不响应VIP的ARP请求设置完后节点服务器则不会去响应ARP广播,而调度器则任然会响应ARP所以 他只能解析到调度器的mac地址对节点服务器进行处理部署LVS-DR集群配置nfs共享服务器(192.168.239.40)与第一台一致挂载文件不同过会再次刷新46)][外链图片转存中…(img-g9Cfp

2022-06-26 15:48:21 140

原创 LVS负载均衡群集—NAT模式实例

通过整合多台服务器,使用lvs来达到服务器的高可用和负载均衡,并以同一个IP地址对外提供相对的服务。访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP地址,也成为群集IP地址。通常会配置主,备两台调度器实现热备份,当主调度器失效以后能够平滑替换至备用调度器,确保高可用。集群所提供的应用服务、由服务池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负责调度器的容错机制会将其隔离,等待错误排除以后在重新纳入服务器池。为服务器池中的所有节点提供稳

2022-06-26 15:47:37 237

原创 LVS+Keepalived 高可用群集

专为LVS和HA设计的一款健康检查工具判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup 节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务重新切换回master节点。Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能VRRP工作过程选举Master,比较优先级,高的为Master,若优先级相同无Master时,比较接口IP地址,大的为Master,Master设备发送ARP报文,承担报文转发工作;状态维持,Mas

2022-06-26 15:46:56 96

原创 Haproxy搭建Web群集

通常使用开源的LVS、nginx、HaproxyLVS在企业应用中抗负载能力很强,但是存在不足Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理软件RR算法是最简单最常用的一种算法,即轮询调度**理解举例:**有三个节点A、B、C最小连接数算法,根据后端的节点连接数大小动态分配前端请求**理解举例:**有三个节点A、B、C,各节点的连接数分别为A:4、B:5、C:6理解举例:HAProxy服务器:192.168.239.10nginx服务器1:192.168.239.20ngin

2022-06-26 15:40:43 188

原创 rsync远程同步

rsync英文称为remote synchronizetion,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。当然,rsync还可以在本地主机的不同分区或目录之间全量及增量的复制数据,这又类似cp命令。但是同样也优于cp命令,cp每次都是全量拷贝,而rsync可以增量拷贝。在同步数据的时候,默认情况下,rsync通过其独特的“quick

2022-06-26 15:35:56 218

原创 Nosql之Redis配置与优化

关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构你的数据及其特性是选择数据存储和提取方式的首要影响因素。sQL和NoSOL数据库最大的差别可能是在扩展方式上,要支持日益增长的需求当然要扩展。要支持更多并发量,SQL数据库是纵向扩展,也就是说提高处理能力,使用速度更快速的计算

2022-06-26 15:32:13 348

原创 Squid缓存代理服务器应用

Squid、Varinsh和Nginx都是代理服务器什么是代理服务器:能当替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接收你的请求,我先在我自已的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你如果我在我本地没有找到你要访问的缓存的数据,那么代理服务器就会代替你去访问公网。工作中选择:要做cache服务的话,我们肯定是要选择专业的cache服务,优先选择squid或者varnish

2022-06-26 15:29:11 278

原创 redis高可用

持久化的功能:Redis是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致Redis进程异常退出后数据的永久丢失,需要定期将Redis中的数据以某种形式(数据或命令)从内存保存到硬盘;当下次Redis重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置。由于AOF持久化的实时性更好,即当进程意外退出时丢失的数据更少,因此AoF是目前主流的持久化方式,不过RDB持久化仍然有其用武之地。RDB持久化是指在指定的时间间隔内将内存中当前进程中的数据生成快照

2022-06-26 15:24:47 279

原创 MHA高可用配及故障切换

MHA Manager(管理节点)MHA Node(数据节点)MHA架构故障模拟一主两从高可用结构去图修改master、slave1、slave2节点的主机名后面我将会以主机名设置mysql用户的访问权限在Master、Slave1、Slave2添加主机映射关系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MKzcOnY-1656227808784)(https://img2022.cnblogs.com/blog/2705557/202206/2705557-20

2022-06-26 15:18:33 132

原创 MySQL的主从复制与读写分离

读写分离,基本的原理是让主数据库处理事务性增、改、删操作( INSERT、UPDATE、DELETE) ,而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。因为数据库的“写”(写10000条数据可能要3分钟)操作是比较耗时的。但是数据库的“读”(读10000条数据可能只要5秒钟);所以读写分离,解决的是,数据库的写入,影响了查询的效率。数据库不一定要读写分离,如果程序使用数据库较多时,而更新少,查询多的情况下会考虑使用。利用数据库主从同步,再通过读写分离可以分

2022-06-25 11:29:48 207

原创 企业级ELK+Filebeat+Kafka架构搭建

Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。也就是说 Zookeeper = 文件系统 + 通知机制。(1)Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。(2)Zook

2022-06-24 23:35:56 356

原创 ELK-企业级日志分析系统

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。基本组件●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。Elasticsearch是一个实时的、分布式的可

2022-06-22 23:36:14 285

原创 MySQL高阶语句

先创建与两个表count函数创建一个表格count(*) 包括了所有的列的行数,全表扫描在统计结果的时候,不会忽略列值为 NULLcount(列名) 只包括列名那一列的行数,在统计结果的时候,会忽略列值为 NULL 的行字符串的拼接||如果/etc/my.cnf文件中的sql_mode开启了PIPES_AS_CONCAT,"||"视为字符串的连接操作符而非或运算符,和字符串的拼接函数Concat相类似,这和Oracle数据库使用方法一样的查看/etc/my.cnf文件中

2022-06-22 11:07:22 111

原创 MySQL数据库的存储引擎

MySQL中的数据用各种不同的技术存储在文件中,每 一种技术都使用不同的存储机制、索引技巧、锁定水平 并最终提供不同的功能和能力,这些不同的技术以及配 套的功能在MySQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存储方 式或者存储格式MySQL常用的存储引擎:MyISAM、InnoDBMySQL数据库中的组件,负责执行实际的数据I/O操作MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储MyISAM:不支持事

2022-06-22 10:54:54 170

原创 MySQL的索引

索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数据对应的物理地址然后访问相应的数据,因此能加快数据库的查询速度。索引就好比是一本书的目录,可以根据目录中的页码快速找到所需的内容。索引是表中一列或者若干列值排序的方法。建立索引的目的是加快对表中记录的查找或排序。优点设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度,这是创建索引

2022-06-22 10:47:24 52

原创 MySQL备份与恢复

备份的主要目的是灾难恢复在生产环境中,数据的安全性至关重要任何数据的丢失都可能产生严重的后果造成数据丢失的原因程序错误人为操作错误运算错误磁盘故障灾难(如火灾、地震)和盗窃从物理与逻辑的角度,备份可分为物物理备份与逻辑备份从数据库的备份策略角度,备份可分为完全备份、差异备份、 增量备份对数据库操作系统的物理文件(如数据文件、 日志文件等)的备份物理备份方法冷备份(脱机备份):是在关闭数据库的时候进行的热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件温备份:数据库锁定表格(不可写入但

2022-06-22 10:42:18 129

原创 MySQL数据库的日志管理md

MySQL的日志默认保存位置为/usr/local/mysql/data2、查询日志

2022-06-22 10:31:22 211

原创 MySQL数据库管理

charchar的长度是不可变。char如果存入数据的实际长度比指定长度要小 会补空格至指定长度 如果存入的数据的实际长度大于指定长度,低版本会被截取高版本会报错。varcharvarchar长度是可变的,默认会加一个隐藏的结束符,因此结束符会多算一个字节。2、查看数据库SHOW DATABASES; #大小写不区分,分号“;”表示结束2.2查看数据库中包含的表法一 :在库中查看表USE 数据库名;SHOW TABLES;法二 :在库外查看表show tables from mysq

2022-06-22 10:18:32 101

原创 MySQL数据库的事务

事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个 整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行。事务是一个不可分割的工作逻辑单元,在数据库系统上执行并发操作时,事务是最小的控制单元。事务适用于多用户同时操作的数据库系统的场景,如银行、保险公司及证券交易系统等等。事务通过事务的整体性以保证数据的一致性。事务能够提高在向表中更新和插入信息期间的可靠性。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位

2022-06-22 10:12:31 223

原创 初识数据库

描述事物的符号记录包括数字,文字、图形、图像、声音、档案记录等以“记录”形式按统一的格式进行存储将不同的记录组织在一起用来存储具体数据表的集合,是存储数据的仓库以一定的组织方式存储的相互有关的数据集合是按照数据结构来组织、存储和管理数据的仓库是实现对数据库资源有效组织、管理和存取的系统软件。数据库的建立和维护功能、数据定义功能、数据操纵功能、数据库的运行管理功能、通信功能是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成用户可以通过DBMS或应用程序操作数据库应用程序或客户

2022-06-22 10:06:42 85

原创 部署zabbix监控

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态。

2022-06-20 17:01:39 873

原创 LINUX系统安全及应用

系统安全及应用1.账号安全基本措施1.1系统账号清理将用户设置为无法登录、锁定账户删除账户锁定账户密码 本质锁定shell——/sbin/nologin却比较特殊,所谓“无法登陆”指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。1.1.1将用户设置为无法登录[root@localhost

2022-04-22 17:41:52 158

原创 iptables 防火墙

文章目录ptables 防火墙iptables概述防火墙中的四表五链四表五链规则链之间的匹配顺序那么我们来小结一下?安装iptables 服务iptables命令行配置方法脱离纸上谈兵,进入实战查看序号删除规则设置默认规则修改规则ptables 防火墙iptables概述Linux 系统的防火墙:IP信息包过滤系统,他实际上由两个组件netfilter和iptables组成。主要工作在网络层,针对ip数据包。体现在对包内的ip地址、端口、协议等信息处理上。netfilter/iptables关系:

2022-04-22 17:40:54 2459

原创 Linux系统的进程和计划任务

文章目录进程和计划任务1程序1.1什么是程序2进程2.1什么是进程2.2进程具有的特征:线程3进程管理相关命令3.1ps命令3.2top命令3.2.1第一部分3.2.2第二部分3.3pgrep命令3.4pstree命令3.5 lsof3.6监控系统资源vmstat4进程启动方式4.1手动启动"命令 &",把命令放入后台执行4.2 结束进程4.2.1 kill4.2.2 killall4.2.3pkill5一次性任务5.1at5.2 crontab进程和计划任务内核功用:进程管理、内存管理、文件系

2022-03-27 17:06:50 575

原创 磁盘阵列raid

文章目录raid 硬件以及软件什么是RAIDRAID-0RAID-1RAID-5RAID-10实现软raidraid 硬件以及软件什么是RAID"RAID"一词是由David Patterson, Garth A. Gibson, Randy Katz 于1987年在加州大学伯克利分校发明的。在1988年6月SIGMOD会议上提交的论文"A Case for Redundant Arrays of Inexpensive Disks”"中提出,当时性能最好的大型机不断增长的个人电脑市场开发的一系列廉价

2022-03-27 15:53:17 840

原创 Linux系统的引导和服务

第8章引导和服务引导过程1.开机自检服务器主机开机以后,将根据主板 BIOS 中的设置对 CPU(Central Processing Unit, 中央处理器)、内存、显卡、键盘等设备进行初步检测,检测成功后根据预设的启动顺序移 交系统控制权,大多时候会移交给本机硬盘。 网络启动 加载 网络批量pxe2. MBR引导当从本机硬盘中启动系统时,首先根据硬盘第一个扇区中 MBR(Master Boot Record, 主引导记录)的设置,将系统控制权传递给包含操作系统引导文件的分区;或者直接根据 M

2022-03-27 15:36:08 1054

原创 Linux系统 lv逻辑卷

文章目录lv逻辑卷磁盘配额综述使用条件磁盘配额中的常见概念磁盘容量限制和文件个数限制软限制和硬限制实际操作lv逻辑卷LVM 是 Logical Volume Manager 的简称,译为中文就是逻辑卷管理。它是 Linux 下对硬盘分区的一种管理机制。LVM 适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM 的快照功能可以帮助我们快速备份数据。LVM 为我们提供了逻辑概念上的磁盘,使得文件系统不再关心底层物理磁盘的概念。物理卷(Physical Volume,PV):就是真正的物

2022-03-27 14:45:21 670

原创 Linux系统的磁盘管理

磁盘管理文章目录磁盘管理1磁盘结构1.1硬盘的物理结构1.2硬盘的数据结构1.3硬盘存储容量1.4 硬盘接口的类型2MBR与磁盘分区2.1 为什么分区2.2硬盘分区3.文件系统3.1 文件系统:3.1.1 **XFS**3.1.2 swap3.1.3FAT16、FAT32、3.1.4NTFS(xfs)3.1.5EXT43.1.6 JFS4.分区工具4.1 fdisk4.2 blkid4.3mkfs4.4 mkswap5.挂载与解挂载5.1mount5.2 df1磁盘结构1.1硬盘的物理结构[外链图片

2022-03-27 14:35:41 2135

原创 Linux系统的账号管理以及权限管理

文章目录账号和权限管理1用户账号和组账号概述1.1用户帐号类型1.1.1 超级用户 0 超级1.1.2 普通用户 受到系统某一类限制1.2 组帐号1.2.1 基本组(私有组)1.2.2 附加组(公共组)1.3 ID1.3.1 UID1.3.2 GID1.3.3 用户和组的关系1.4 用户账号管理1.14.1文件位置:1.4.2添加用户基本格式选项1.4.3 密码管理1.4.4修改用户账号的属性1.4.5 删除用户1.4.6用户账号的初始配置文件1.5组管理1.5.1组账号文件1.5.2添加组1.5

2022-03-16 10:31:38 3573

原创 Linux的rpm命令以及挂载源码编译安装

安装及管理程序Linux应用程序基础本章结构Linux应用程序基础RPM软件包管理工具源代码编译安装Linux源码包实际上,源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的Linux二进制包二进制包,也就是源码包经过成功编译之后产生的包。由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快(同 Windows下安装软件速度相当),且安装过程报错几率大大减小。源码包 VS RPM二进制包源码包一般包含多个文件,为了方便发布,通常会将源码包做打包

2022-03-11 17:17:36 3300

原创 华为模拟eNSP器交换机简单开具以及基础命令

华为模拟器eNSP的基本配置一、建立拓扑图1.选用交换机2.选择连接线3.标注IP地址4.配置PC5.设备开机6.测试是否接通7.抓包试验二、基本操作命令1.进入系统视图2.设备改名3.进入端口模式4.查看vrp版本5.查看用户终端信息6.查看接口情况7.端口模式下###速度调节###以及###全双工半双工调节###三、一些常用的基础命令1.dis mac-address 查看mac地址信息2.reset arp all 清楚mac地址表3.

2022-03-05 17:23:17 4757 1

原创 Linux目录和文件管理

文章目录目录和文件管理1.目录层次1.1常见目录Linux /usr目录Linux /var 目录1.2 文件系统的目录结构2.查看文件内容2.1七类常见的linux的文件2.2 显示命令2.2.1 cat2.2.2 more2.2.3 less2.2.4 head/tail2.2.5 tr2.2.6 cut2.2.7 wc2.2.8 grep3 压缩,解压缩3.1 gzip bzip23.2归档tar4.vi编辑器4.1三种模式4.1.1命令模式4.1.2输入模式4.1.3末行模式4.1.4可视化模式

2022-03-05 17:17:42 933

原创 VMware虚拟机的安装以及基一些础命令

文章目录虚拟机环境配置1安装虚拟机2 网络环境调试2.1配置网卡2.2查看你的NAT 网段2.3查看你的nat网关2.4 配置你的虚拟机网卡2.5 连接xshell2.5.1新建连接2.5.2配置你的连接数据2.5.3保存密码2.5.4选择登录用户2.5.5保存密码2.5.6成功连接3.系统环境初始化3.1关闭防火墙软件3.2 selinux3.2.1什么是selinux3.2.2 实际操作3.3 配置国内yum源Linux命令linux的哲学思想Linux 命令精讲1 shell1.1什么是 shell

2022-03-04 09:33:12 5072

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除