自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Able

积累每一天

  • 博客(375)
  • 资源 (23)
  • 收藏
  • 关注

原创 图解Go语言的gc算法——三色标记

虽然Golang的GC自打一开始,就被人所诟病,但是经过这么多年的发展,Golang的GC已经改善了非常多,变得非常优秀了。以下是Golang GC算法的里程碑: v1.1 STW v1.3 Mark STW, Sweep 并行 v1.5 三色标记法 v1.8 hybrid write barrier 经典的GC算法有三种:引用计数(reference counting)、标记-清扫(mark & sweep)、复制收集(Copy and Collecti

2021-09-27 14:51:29 2278

原创 Golang 协程调度

一、线程模型N:1模型,N个用户空间线程在1个内核空间线程上运行。优势是上下文切换非常快但是无法利用多核系统的优点。 1:1模型,1个内核空间线程运行一个用户空间线程。这种充分利用了多核系统的优势但是上下文切换非常慢,因为每一次调度都会在用户态和内核态之间切换。(POSIX线程模型(pthread),Java) M:N模型, 每个用户线程对应多个内核空间线程,同时也可以一个内核空间线程对应多个用户空间线程。Go打算采用这种模型,使用任意个内核模型管理任意个goroutine。这样结合了以上两种模型的

2021-09-27 09:02:19 971 1

原创 在Sublime Text 中运行PHP代码

安装步骤1、下载PHP的集成安装环境WampServer,下载完成后运行exe点下一步、下一步进行安装。2、按win+R输入sysdm.cpl打开系统属性(或通过计算机右击->属性->高级系统配置)选择高级->环境变量,然后将PHP可执行程序路径(wampServer安装目录下,我这儿是安装在D盘所以就是下图中的路径)设置到环境变量 path 即可。注意分号的使用,每个 path之间用分号隔开,注意是英文的分号,不是中文的分号。如下图:检测上面配置是否成功,重新打开一个cm

2021-09-22 10:04:13 4274

转载 MongoDB3.4版本配置详解

配置说明 在Mongod安装包中,包含2个进程启动文件:mongod和mongos;其中mongd是核心基础进程,用来接收读写请求、负责存储实际数据,mongod实例是构成集群的基本单位,比如Replication set、Sharding Cluster、Config Servers等;mongos是Sharding Cluster架构模式中的“路由”进程,即客户端请求访问mongos,然后有mongos将请求转发给合适的sharding server执行操作,并将result返回给客户端,所以m..

2021-08-16 16:35:46 846

原创 beyond Compare 4 过期

w4G-in5u3SH75RoB3VZIX8htiZgw4ELilwvPcHAIQWfwfXv5n0IHDp5hv1BM3+H1XygMtiE0-JBgacjE9tz33sIh542EmsGs1yg638UxVfmWqNLqu-Zw91XxNEiZF7DC7-iV1XbSfsgxI8Tvqr-ZMTxlGCJU+2YLveAc-YXs8ciRTtssts7leEbJ979H5v+G0sw-FwP9bjvE4GCJ8oj+jtlp7wFmpVdzovEhv5Vg3dMqhqTiQHKfmHjYbb0o

2021-08-15 10:50:24 398

原创 windows下github 出现Permission denied (publickey).解决方法

git clonegit@github.com:xxxxxxx.git创建了私有项目拉取远程仓库,这边报错了:解决方法是,先生成一个key,命令是:ssh-keygen -t rsa,然后有下面的提示第一个红线的框是保存key的文件路径,生成秘钥后,需要到该文件中,把秘钥信息复制出来,填写到github ssh 秘钥管理中,才可以拉取私有项目。复制 public key (windows.pub中的一串数字) 到你账户的list of SSH keys, 下面的命令来测...

2021-08-15 10:35:35 2073

原创 完美解决github访问速度慢

1. 修改本地hosts文件windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hostsmac/linux系统的hosts文件的位置如下:/etc/hosts2. 增加http://github.global.ssl.fastly.net和http://github.com的映射获取Github相关网站的ip访问https://www.ipaddress.com,拉下来,找到页面中下方的“IP Address Tools – Q

2021-08-15 09:55:21 295

原创 Sublime text3 连接sftp/ftp(远程服务器)

首先说明的是Sumblime Text 3,下载安装后,打开软件, 按下Ctrl+Shift+P调出命令面板,按回车键后弹出下面的安装完成后,在新建的文件夹中点击右键自动生成一个sftp-config.json文件,根据下图设置,红色箭头指向的是必须要自己重新设置的一般都可以了,紧接着就是新建一个目录,名字要和服务器中的一样,这个才能让插件找到位置,在这个目录下点击右键就可以下载服务器中的文件了,之后就可以修改文件后,点击保存就可以...

2021-08-04 13:51:52 907

原创 go get 报错:dial tcp 142.250.66.113:443: i/o timeout解决方案

自动下载go env -w GO111MODULE=on设置环境为国内代理go env -w GOPROXY=https://goproxy.cn,direct

2021-06-15 11:36:03 8569 1

原创 Mysql中的回表查询与索引覆盖

了解一下MySQL中的回表查询与索引覆盖。回表查询要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。InnoDB的聚集索引InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。1.如果表定义了PK(Primary Key,主键),那么PK就是聚集索引。2.如果表没有定义PK,则第一个NOT NULL UNIQUE的列就是聚集索引。

2021-05-14 14:36:44 168

原创 如何快速定位当前数据库消耗 CPU 最高的 sql 语句?

如何快速定位消耗 CPU 最高的 sql 语句,怎么做?看看下面的介绍。概述如果是Oracle数据库我们可以很容易通过sql来定位到当前数据库中哪些消耗CPU高的语句,而mysql数据库可以怎么定位呢?这里用一个简单例子说明下...主要是了解如何定位的思路,具体看官网介绍..参考:https://www.percona.com/blog/2020/04/23/a-simple-approach-to-troubleshooting-high-cpu-in-mysql/主要意思是针对定位C

2021-05-12 09:19:30 383

原创 分布式事务

ACID指数据库事务正确执行的四个基本要素:原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability)CAPCAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容忍性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值。 可用

2021-04-26 16:22:35 149

原创 DevOps平台

一、DevOps 简介DevOps 一词的来自于 Development 和 Operations 的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。DevOps 其实包含了三个部分:开发、测试和运维。换句话 DevOps 希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。二、DevOps 工具链项目管理(PM):Jira 代码管理:GitLab 持续集成(CI):GitLab CI

2021-04-26 16:16:08 5579

原创 PHP八大设计模式

设计模式单例模式解决的是如何在整个项目中创建唯一对象实例的问题,工厂模式解决的是如何不通过new建立实例对象的方法。单例模式$_instance必须声明为静态的私有变量 构造函数和析构函数必须声明为私有,防止外部程序new 类从而失去单例模式的意义 getInstance()方法必须设置为公有的,必须调用此方法 以返回实例的一个引用 ::操作符只能访问静态变量和静态函数 new对象都会消耗内存 使用场景:最常用的地方是数据库连接。 使用单例模式生成一个对象后, 该对象可以被其它众多对

2021-04-18 21:59:31 122

转载 MySQL中Checkpoint技术

1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操作的效率,buffer pool中修改之后的数据,并没有立即写入到磁盘,这有可能会导致内存中数据与磁盘中的数据产生不一致的情况。事物要求之一是持久性(Durability),buffer pool与磁盘数据的不一致性的情况下发生故障,可能会导致数据无法持久化。为了防止在内存中修改但尚未写入到磁盘的数据,在发生故障重启数据之后产生事物未持久化的情况,是通过日志(redo log)先行的

2021-04-15 10:06:50 365

原创 解决composer 安装某些扩展出现composer:Could not find package

前言:因为笔者之前将composer代码源修改为中国镜像服务器https://packagist.phpcomposer.com。解决:切换为国内镜像的命令为:composer config -g repo.packagist composer https://packagist.phpcomposer.com改为:composer config -g repo.packagist composer https://packagist.org...

2021-04-14 14:53:21 1004 1

原创 pt-table-checksum使用实践

在工作中接触最多的就是mysql replication,由于现在公司也还在使用mysql 5.1.x版本,在复制方面还是比较多的问题,比如主库宕机或者从库宕机都会导致复制中断,通常我们需要进行人为修复(mysql 5.5版本解决大部分问题),或者很多时候需要把一个从库提升为主库,但对从库和主库的数据一致性不能保证一样,所以就利用 pt-table-checksum 工作来检查主从的一致性,以及通过 pt-table-sync 如何修复这些不一致的数据。当然如果你数据量小,slave只是当做一个备份使用,那

2021-04-06 15:46:51 670

原创 布隆过滤器算法

1. 简介客户端:这个key存在吗?服务器:不存在/不知道本质上,布隆过滤器是一种数据结构,是一种比较巧妙的概率型数据结构。它的特点是高效地插入和查询。但我们要检查一个key是否在某个结构中存在时,通过使用布隆过滤器,我们可以快速了解到「这个key一定不存在或者可能存在」。相比于传统的List、Set、Map这些数据结构,它更加高效、占用的空间也越少,但是它返回的结果是概率性的,是不确切的。布隆过滤器仅用于测试集合中的成员资格。使用布隆过滤器的经典示例是减少对不存在的密钥的昂贵磁盘(或网络)查找

2021-03-26 15:55:08 473

原创 查看php-fpm的内存占用

1、查看php-fpm的进程个数ps -ef |grep "php-fpm"|grep "pool"|wc -l2、查看每个php-fpm占用的内存大小ps -ylC php-fpm --sort:rss3.查看PHP-FPM在你的机器上的平均内存占用ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'4.查看单个php-fpm

2021-03-11 10:00:01 399

原创 MySQL查看表占用空间大小

在mysql中有一个默认的数据表`information_schema`,information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema表里面,所以请勿删改此表。代码:1,切换数据库use `information_schema`;2,查看数

2021-03-10 10:04:15 361

原创 深度解剖session运行原理

什么是sessionsession的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。说白了session就是一种可以维持服务器端的数据存储技术。session主要有以下的这些特点:1. session保存的位置是在服务器端2. session一般来说是要配合cookie使用,如果是浏览器禁用了cookie功能,也就只能够使用URL重写来实现session存储的功能3. 单纯的使用ses...

2021-03-09 09:41:41 536

原创 性能测试 -- docker部署grafana

一、前提  1、安装好了docker  2、docker内 和 jmeter脚本全都已经部署好了influxdb,并且数据采集等都正常二、docker部署 grafana的操作步骤  1、下载docker的 grafana 镜像源:docker pull grafana/grafana    sha256:2533fd6c262c5ba8303c7729850db39aaffc07c2d6bc7fea0081e88480f8db27  2、开启 3000...

2021-02-26 15:16:39 747

原创 Jmeter模拟多用户登陆测试

二、模拟测试场景准备1.用户数据准备由于需要模拟多用户登录,所以需要准备一个txt文件,文件中包含username,password,验证码。用户名以及密码均是固定值,不需要做处理。验证码需要处理成固定值,这里是11111。2.压力测试脚本准备2.1 脚本录制使用badboy录制Jmeter脚本,badboy录制的脚本比Jmeter自己运行的Http请求要有更多的参数,比如图形验证码、服务器名称或IP会自动加载,无需手写。另外自动加载Http Cookie管理器、用户定义的变量、HTTP信息头管

2021-02-25 18:14:31 2117

原创 jmeter5.3 监控内存,CPU等方法

JMeter浅析: JMeter写脚本都是基于元件的,是通过各种元件不同的组合使用来来编写成为我们最终想要的一个逻辑的脚本,但是工具不是万能的可以通过这些元件实现任何功能、可以面面俱到,例如我们有些特殊的需求就无法满足需要,因为JMeter采集的性能指标都是常规的,如:吞吐量、响应时间、带宽 等这些基本的指标,但是如果要测CPU、IO、物理内存 等这些硬件指标时就无法满足,所以需要安装第三方插件来让他支持硬件资源指标收集一、下载:地址:https://jmeter-plugins....

2021-02-25 18:08:08 986

原创 Centos 7 仅安装Mysql client

仅安装MySQL客户端# 添加rpm源[root@k8s-master ~]# rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm[root@test1 ~]## 通过yum搜索[root@test1 ~]# yum search mysql-community[root@test1 ~]## 安装x64位的 mysql客户端[root@test1 ~]# yum install mysql

2021-02-23 09:35:03 466

原创 docker ulimit 配置

一:通过docker run –ulimit 参数设置这个容器的 ulimit 值如 1 docker run --ulimit nofile=1024:1024 --rm debian sh -c "ulimit -n" 官网说明:https://docs.docker.com/engine/reference/commandline/run/#set-ulimits-in-container—ulimit二: 修改 docker 服务的 .

2021-02-21 09:31:07 7532

原创 Mysql的sql_mode设置

1、查询sql_modeselect @@GLOBAL.sql_mode或select @@SESSION.sql_mode2、设置sql_mode通过命令设置SET GLOBAL sql_mode = 'modes...';或SET SESSION sql_mode = 'modes...';在配置文件中设置在/etc/my.cnf的[mysqld]下设置[mysqld]sql_mode=STRICT_TRANS_TABLES,NO_AU...

2021-02-20 10:17:29 723 1

原创 go时间/时间戳操作大全(小结)

01: 获取当前时间 1 2 dateTime := time.Now() fmt.Println(dateTime) 02: 获取年 月 日 时 分 秒 纳秒 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

2021-02-17 12:24:08 1655

原创 MYSQL 写入性能参数优化

写入性能优化的一些参数说完了如何修改和查看RDS参数,我们接下来看一下一些和写入性能相关的参数,限于篇幅,我们不能介绍所有的MYSQL参数。innodb_buffer_pool_size在MYSQL中buffer pool用来缓存表和索引的数据,以便加速对数据的处理。如果在buffer在pool中无法获取数据(所谓cache miss),那么就会产生磁盘的随机IO请求,这会降低处理速度,所以配置一个合适大小的buffer pool对性能至关重要。RDS中innodb_buffer_pool_si

2021-02-01 14:22:20 1642

翻译 Innodb重要参数优化

1.简单介绍InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。下面是对线上mysql5.6版本的数据

2021-01-29 15:42:38 1472 1

原创 b树 b+树 红黑树知识点

b树:1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字;一个 m 阶的B树是一个有以下属性的树:每一个节点最多有 m 个子节点 每一个非叶子节

2021-01-12 14:10:42 588

原创 解决 cgi.fix_pathinfo 漏洞

set $path_info "";set $real_script_name $fastcgi_script_name;if ($fastcgi_script_name ~ "^((U?).+?\.php)(/.*)$"){ set $real_script_name $1; set $path_info $2;} fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;fastcgi_pa.

2021-01-11 16:09:43 291

转载 安装PHP7.4找不到包 No package ‘oniguruma‘ found错误

wget https://github.com/kkos/oniguruma/archive/v6.9.4.tar.gz -O oniguruma-6.9.4.tar.gztar -xvf oniguruma-6.9.4.tar.gzcd oniguruma-6.9.4/./autogen.sh./configure --prefix=/usr --libdir=/lib64 //64位的系统一定要标识--libdir=/lib64 否则还是不行make && m...

2020-12-25 16:06:17 1835 1

原创 Linux终端下 dstat 监控工具

dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。dstat可以很方便监控系统运行状况并用于基准测试和排除故障。dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。这样更

2020-12-23 15:39:43 130

转载 Redis Sentinel部署及在Laravel中使用

环境说明当前的环境条件如下,当然这并不是部署sentinel的最低可行版本。CentOS7(ip: 192.168.8.11) Redis5.0.2(可执行命令已复制到/usr/local/bin/) Laravel5.5(5.4>=版本开始支持sentinel) predis1.1部署按3个server节点(一主两从)+3个sentinel节点的拓扑结构进行部署。部署的端口分配如下:IP 端口 类型 配置文件 192.168.8.11 6400

2020-12-15 16:19:01 352

原创 php-fpm 高并发 参数调整

工作中经常会遇到会给客户配置服务器,其中有的客户还会有并发量要求,其中也会必须要用负载均衡承载压力的。增加服务器数量肯定能有效的提升服务器承载能力,但只有根据目前已有配置设置好单台服务器才能更好的发挥出服务器的性能。调整好一台服务器后剩下的就更简单了 拿着快照复制n多台。 今天就说一下php服务器的配置,之前说过opcache 今天说一下lnmp下基本配置(个人经验总结,如有不妥之处望大神提示一下)。 服务器中找到php-fpm.conf配置(有的会在引入的www.con...

2020-12-08 16:57:53 1998

原创 vmstat命令

一、前言很显然从名字中我们就可以知道vmstat是一个查看虚拟内存(Virtual Memory)使用状况的工具,但是怎样通过vmstat来发现系统中的瓶颈呢?在回答这个问题前,还是让我们回顾一下Linux中关于虚拟内存相关内容。二、虚拟内存原理在系统中运行的每个进程都需要使用到内存,但不是每个进程都需要每时每刻使用系统分配的内存空间。当系统运行所需内存超过实际的物理内存,内核会释放某些进程所占用但未使用的部分或所有物理内存,将这部分资料存储在磁盘上直到进程下一次调用,并将释放出的内存提供给有需

2020-12-07 14:34:10 154

原创 gnuplot安装及使用

一、安装gnuplot(linux服务器端)1.下载gnuplot(版本4.4.0) wget http://nchc.dl.sourceforge.net/project/gnuplot/gnuplot/4.4.0/gnuplot-4.4.0.tar.gz2.解压文件 tar -zxvf gnuplot-4.4.0.tar.gz3.配置安装路径 cd gnuplot-4.4.0 ./configure4.编译 ...

2020-11-30 17:06:57 1143

原创 rbdtools查看 redis key的占用内存大小

安装rdbtoolsyum -y install gccyum -y install epel-releaseyum -y install python-pipyum install python-devel不安装会报错Python.h:没有那个文件或目录pip install rdbtoolsrdb -c memory dump.rdb > result.csv

2020-11-24 09:46:59 344

转载 MySQL 精华总结

❝写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。个人建议把面试题看作是费曼学习法中的回顾、简化的环节,准备面试的时候,跟着题目先自己讲给自己听,看看自己会满意吗,不满意就继续学习这个点,如此反复,好的offer离你不远的,奥利给一、MySQL架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处...

2020-11-20 09:39:44 286

GeoLite2-ASN_20200505.tar.gz

Geoip2 国家数据库包

2020-05-12

GeoLite2-Country_20200505.tar.gz

Geoip2 国家数据库包

2020-05-12

全世界各个主要的国家以及城市对应数据表

全世界各个主要的国家以及城市对应数据表 全世界各个主要的国家以及城市对应数据表 全世界各个主要的国家以及城市对应数据表

2020-04-09

nginx包(windows 下使用)

nginx包(windows 下使用) 解压缩 修改路径即可使用

2017-05-24

大型网站技术架构:核心原理与案例分析

大型网站技术架构:核心原理与案例分析

2016-08-29

maven+springmvc+spring+mybatis

maven+springmvc+spring+mybatis项目

2016-06-17

nginx-1.9.12

nginx-1.9.12 nginx-1.9.12 nginx-1.9.12

2016-04-26

javax.transaction.jar

javax.transaction.jar javax.transaction.jar

2016-04-26

log4jdbc4.jar

log4jdbc4

2015-11-26

struts.jar

struts-2.3.24.7z

2015-10-09

spring-framework.jar

spring-framework.jar

2015-10-09

spring.jar

spring.jar

2015-10-09

SSH框架配置完全攻略

SSH框架配置完全攻略

2015-09-17

Java语言程序设计-进阶篇

Java语言程序设计-进阶篇

2015-09-17

Java Servlet开发与实例

Java Servlet开发与实例

2015-09-17

Mongodb权威指南

Mongodb权威指南

2015-07-08

高性能PHP开发应用

高性能PHP开发应用,提高代码的可执行性

2014-02-19

PHP入门到精通教程

前言 1 什么是PHP? 2 PHP入门例子 3 在HTML中嵌入PHP 4 PHP语法 5 PHP面向对象(OOP)语法 PHP核心对象 PHP 教程 PHP参考资料

2012-04-11

精通PHP和MYSQL教程

前言 1 什么是PHP? 2 PHP入门例子 3 在HTML中嵌入PHP 4 PHP语法 5 PHP面向对象(OOP)语法 PHP核心对象 PHP 教程 PHP参考资料

2012-04-11

win7远程多用户补丁

win7远程多用户补丁,右键选择以管理员身份运行安装,如果提示版本不对,用记事本打开,修改版本号即可,本补丁以修改为7600 RTM

2012-04-06

空空如也

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

TA关注的人

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