自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [杂谈] macbook pro 设置 phpStrom/goLand TouchBar

进入 IDE,使用 command + , 进入首选项(Preferences)查找外观&行为(appearance&behavior) -》菜单和工具栏(Menus and toolbars),如下图默认在 default 中添加 Touch Bar 操作注意每次添加后想要看到效果,需要重启 IDE 才可以。...

2020-04-20 15:15:27 531

转载 [杂谈] 常见安全漏洞及修复方案

原文地址:支付宝开放平台第三方应用安全开发指南,如有侵权请联系删除常见安全漏洞及修复方案1. 跨站脚本(XSS)漏洞漏洞描述漏洞危害解决方案2. CSRF 漏洞漏洞描述漏洞危害解决方案3. HTTP Header 注入漏洞漏洞描述解决方案4. 目录遍历漏洞漏洞描述解决方案5. SQL 注入漏洞漏洞描述漏洞危害解决方案6. 文件下载漏洞漏洞描述解决方案7. 文件上传漏洞漏洞描述解决方案1. 跨站...

2020-04-16 11:13:42 554

原创 [杂谈] Mac 下 rar 压缩操作

安装 rar 命令下载 rar 文件,其他版本地址:https://www.rarlab.com/download.htm解压文件夹并进行如下操作安装压缩命令sudo install -c -o $USER rar /usr/local/bin安装解压命令sudo install -c -o $USER unrar /usr/local/bin...

2020-03-31 17:38:13 245

原创 [杂谈] Chrmoe 导入 csv 密码、禁止 swf 自动下载

在地址栏输入:chrome://flags/#password-import-export在搜索栏搜索 Password import选择 enable ,重启浏览器 设置-> 自动填充 -> 密码 -> 导入

2020-03-31 17:25:22 468

原创 [杂谈] Can't exec "aclocal": No such file or directory at 'xxx'

安装 grpc_php_plugin 插件,进行 make grpc_php_plugin 操作时,出现这个错误。原因是缺少 automake,安装后再操作就好了。

2020-03-31 07:46:39 892

原创 [redis] 主从复制原理

完全重同步复制流程当 从服务器第一次复制主服务器,从服务器(slave)使用 SLAVEOF host port 命令,向主服务器(master)发送复制请求, master 收到后返回 OK;slave 保存 master 信息,结构 server.h/redisServer 结构中 masterhost, masterport异步执行复制工作,内部流程如下:1. slave 使用...

2020-03-18 00:18:22 91

原创 [redis] 客户端与服务器

客户端结构 5.0 server.h/clienttypedef struct client {uint64_t id; /* Client incremental unique ID. */// 客户端类型不同 fd 的取值也不同// 伪客户端: -1,处理来自 AOF 文件或 Lua 脚本的命令// 普通客户端:大于 -1。// CLIENT list 用于...

2020-03-14 18:13:55 180

原创 [redis] 事件

文件事件说明Redis 服务器通过套接字 Socket 与客户端或其它 Redis 服务器进行连接,文件时间就是服务器对套接字操作的抽象。套接字变为可应答(acceptable)、可写(writable)、可读(readable) 时,会产生相应的文件事件,服务器通过监听并处理这些事件来完成一系列网络通信操作。文件事件分为 AE_READABLE 事件(读事件)和 AE_WRITABL...

2020-03-08 17:21:47 92

原创 [redis] 数据持久化

RDB重点 1. RDB 是经过压缩的二进制文件用于保存和还原 Redis 服务器所有数据库中的所有键值对数据。 2. SAVE 命令会阻塞服务器,执行过程中客户端命令请求会被拒绝。 3. BGSAVE 命令由子进程执行保存操作,不会阻塞服务器,可以继续处理客户端命令。 4. 服务器为避免父进程及子进程同时执行 rdbSave 调用,防止竞争条件,所以禁止 SAVE 和 BGSAVE...

2020-03-07 00:17:27 74

原创 [redis] 数据库相关 -- 过期键的删除策略

被动删除策略:惰性删除每次从键空间中获取键时,都检查键是否过期,过期就删除键。否则就返回键优点:对 cpu 友好缺点:占用已过期的键,但还没被删除的内存空间。 实现函数 expireIfNeeded,位置 db.c / expireIfNeeded;流程:是否所有读写数据库的命令 eg: SET, LRANGE, SADD, HGET, KEYS 等调用 expireIfNeede...

2020-03-03 20:06:07 110

原创 [redis] 数据库相关 -- 设置过期时间及生存时间

过期时间及生存时间命令 1. EXPIRE <key> <ttl> 设置 key 的生存时间为 ttl 秒 2. PEXPIRE <key> <ttl> 设置 key 的生存时间为 ttl 毫秒 3. EXPIREAT <key> <timestamp> 设置 key 的过期时间为 ti...

2020-03-03 19:44:16 1162

原创 [redis] 数据库相关 -- 键空间

键空间版本 5.0 结构 typedef struct redisDb { // 数据库键空间,保存数据库中所有的键值对,字典结构; // 每个键都是字符串对象 // 值可以为 字符串对象、列表对象、哈希表对象、集合对象、有序集合对象 中任意一种 Redis 对象 dict *dict; /* The keys...

2020-03-03 19:43:14 117

原创 [redis] 对象

对象类型注: 5.0 版本中,前缀 REDIS_ 更改为 OBJ_, 源码位置 src/server.h3.2 版本 ,新增 quicklist 结构,其用于替换 linkedlist 和 ziplist 结构。结构typeof struct redisObject { /* 类型 #REDIS_STRING // 字符串 #REDIS_LIST // 列...

2020-02-28 21:44:26 78

原创 [redis] 数据结构 -- 紧凑列表

listpack 紧凑列表说明: 因为ziplist 在极小的概率下有可能发生级联更新,当连续规模较大的级联更新发生时,对 Redis 的性能有比较大的影响。所以 在 5.0 版本中, 新增 listpack 它是对 ziplist 结构的改进,在存储空间上会更加节省,而且结构上也比 ziplist 要精简。结构struct listpack<T> { int32 tot...

2020-02-20 21:25:58 315

原创 [redis] 数据结构 -- 压缩列表

ziplist 压缩列表压缩列表是一块连续的,无间隙的内存空间;为节约内存使用空间而设计的结构。列表键和哈希键的底层实现之一结构struct ziplist <T> { int32 zlbytes; // 整个压缩列表占用字节数 int32 zltail_offset; // 最后一个元素距离压缩列表起始位置的偏移量,用于快速定位到最后一个节...

2020-02-20 21:22:33 126

原创 [redis] 数据结构 -- 链表

linkedlist结构typedef struct listNode { struct listNode *prev; // 前置节点 struct listNode *next; // 后置节点 void *value; // 节点值,指向 robj 对象,而 robj 对象中的 ptr 指向实际的 SDS 对象} lis...

2020-02-20 21:19:34 120

原创 [redis] 数据结构 -- 整数集合

intset 整数集合集合键底层实现之一,当集合只包含整数值元素并且数量不多时(由 set-max-intset-entries 配置),使用 intset 作为集合键底层实现结构typeof struct intset { // 编码方式 uint32_t encoding; // 集合包含的元素数量,也是 contents 数组长度 uint32_t length; // 保存...

2020-02-20 20:17:37 241

原创 [redis] 数据结构 -- 跳跃表

skiplistskiplist 是有序集合底层实现之一,另外一个是 ziplist。同时满足以下条件时使用 ziplist 1. 元素数量小于 128 个,可以通过 zset-max-ziplist-entries 来修改 2. 所有 member 的长度都小于 64 字节,可以通过 zset-max-ziplist-value 来修改skiplist 插入、删除、查找的...

2020-02-19 22:01:03 105

原创 [redis] 数据结构 -- 字典

dictht 哈希表结构// 哈希表结构typeof struct dictht { // 哈希表数组 dictEntry **table; // 哈希表大小 unsigned long size; // 哈希表大小掩码,用于计算索引值, 总是等于 size - 1 unsigned long sizemask; // 该哈希表已有...

2020-02-19 00:23:35 90

原创 [redis] 数据类型 -- 快速列表

说明版本 < 3.2 时,使用 linkedlist 和 ziplist,也就是元素少时用 ziplist,元素多时用 linkedlist。版本 ≥ 3.2时,使用 quicklist。广泛用于实现 Redis 的各种功能,列表键、发布与订阅、慢查询、监视器等可以通过 debug object xxx(键),中的 encoding 查看使用了什么结构ziplist 对空间的利用...

2020-02-17 22:17:36 100

原创 [redis] 数据结构 -- 字符串

知识点[注] 相关源码保存位置:src/redis.h、src/sds.h、src/sds.c。在 redis 中字符串叫 SDS(Simple Dynamic String,动态字符串)SDS 结构如下 – 是一个带长度信息的字节数组。struct SDS<T> { T capacity; // 数组容量,1byte T len; // 数组长度,1by...

2019-10-11 15:44:42 112

转载 [git] Git warning:LF will be replaced by CRLF

注:本文转载自 Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案stackoverflow 上的回答原因首先问题出在不同操作系统所使用的换行符是不一样的,下面罗列一下三大主流操作系统的换行符:Uinx/Linux 采用换行符 LF 表示下一行(LF:LineFeed,中文意思是换行)Dos 和 Windows 采...

2019-07-12 16:15:24 95

原创 [linux] 常用命令--不定期更新

1、当前目录下 文件大小排序du -sh ./* | sort -nr

2019-07-11 17:40:10 108

原创 [php] laravel predis 使用 hscan 和 scan

[ PHP ] laravel predis 使用 hscan 和 scan前言正文使用 hscan 进行删除的例子使用 scan 获取 key 列表的例子前言前言的前言 1,线上 redis 版本为 2.8.19,无法使用 unlink。前言的前言 2,此处描述的 redis hash 数据,实时性,完整性要求不高。前言的前言 3,框架为 laravel 5.6,使用 predis。根...

2019-06-19 18:46:12 3043

原创 [php] 二维数据排序代码

function data_sort($arrays){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ // $array['time'] 二维数组中需要依据的排序字段 ...

2018-04-13 11:27:11 169

转载 [nginx] 本机 https 测试,证书生成过程

生成证书使用openssl生成密钥privkey.pem: openssl genrsa -out privkey.pem 1024/2038使用密钥生成证书server.pem: openssl req -new -x509 -key privkey.pem -out server.pem -days 365证书信息可以随便填,但是Common Name要根据你本机测试的域...

2018-04-04 16:50:46 1050

原创 [php] 获取请求 IP 地址,及所处 IP 所在服务商代码

// 获取 IP 地址 function get_remote_addr(){ if (isset($_SERVER["HTTP_X_REAL_IP"])) { return $_SERVER["HTTP_X_REAL_IP"]; } else if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {...

2018-03-19 11:44:36 2070

原创 [php] 如何查看 linux/macOs 系统上的 php 位数是 32 位的还是 64 位的

使用 file 命令执行 php 的可执行文件就可以看到 如 php 的可执行文件为 /usr/bin/php file /usr/bin/php输出: 其中 64-bit LSB executable ,x86-64 就代表 php 是 64位的。...

2018-03-12 18:18:52 2294

原创 [php] 如何正确发布 PHP 代码

如何正确发布PHP代码几乎每一个 PHP 程序员都发布过代码,可能是通过 FTP 或者 rsync 同步的,也可能是通过 svn 或者 git 更新的。一个活跃的项目可能每天都要发布若干次代码,但是现实却是很少有人注意其中的细节,实际上这里面有好多坑,很可能你就在坑中却浑然不知。一个正确实现的发布系统至少应该支持原子发布。如果说每一个版本都表示一个独立的状态的话,那么在发布期间,任何...

2018-03-09 11:38:58 6352

原创 [jenkins] 配置邮件发送地址

位置:系统管理 -&gt; 系统设置 1. Jenkins Location -&gt;系统管理员邮件地址,输入邮件地址。 2. 邮件通知 -&gt; SMTP 服务器 设置为邮箱的发送服务器 3. 选中 使用 SMTP 认证 4. 输入用户名(与系统管理员邮件地址一致)密码、选中 使用 SSL 协议、SMTP 端口、字符集设置为 UTF-8 5. 测试邮件是否设置成功,选中...

2018-03-07 15:25:53 548

转载 [nginx] 内置预定义变量列表

$arg_PARAMETER 这个变量值为:GET 请求中变量名 PARAMETER 参数的值。$args 这个变量等于GET请求中的参数。例如,foo=123&bar=blahblah;这个变量只可以被修改$binary_remote_addr 二进制码形式的客户端地址。$body_bytes_sent 传送页面的字节数$content_length 请求头中的 Content-

2018-02-07 18:16:51 200

原创 [nginx] 记录关于 $_GET 获取参数有误的一次问题排查

1. 背景及前因背景 开发环境: php:7.2.1;nginx:1.11.5;后端框架:laravel 5.1;前因 开发中的后台,有些页面使用了通过 url 实现的分页功能;然而分页功能通过 url 没有正确实现;2. 问题排查追因对 laravel 框架中的 Resquest 类进行追查,其 capture() 方法引用基类 SymfonyRequest 中的

2018-02-07 17:18:08 896

原创 [mysql] 批量导入提示: Variable ‘character_set_client’ can’t be set to the value of ‘NULL

在批量导入的 sql 文件中找到:/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNE

2017-12-15 11:04:52 4521

原创 [mysql] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing

mysql> SET PASSWORD = PASSWORD('your new password');mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;mysql> flush privileges;

2017-12-15 10:49:43 281

原创 [openssl] 生成公私钥文件

OpenSSL> genrsa -out app_private_key.pem 1024 #生成 1024位 私钥,2048 生成 2048 位秘钥 OpenSSL> pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem #Java开发

2017-12-07 13:56:13 888

原创 [ubuntu] 解决 eclipse 在启动器上无法运行的问题

第一次运行 eclipse 时会在 ~/.local/share/applications 目录下创建快捷方式 eclipse.desktop 删掉就好了。

2017-11-30 11:04:02 2169

原创 [php] 代码片段之 Redis SessionHandler

class Redis_Session implements SessionHandlerInterface { private $handle; private $lifetime; private $prefix = 'TESTSID:'; /** * open session * @param string $save_p

2017-11-29 13:23:21 523

原创 [linux] Apache 下 TIME_WAIT 太多的问题

问题: apache与负载均衡器的的连接数过多,导致链接延迟;原因: 通过查看服务器网络状态检测到服务器有大量的 TIME_WAIT 的状态; 检查命令 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 它会显示例如下面的信息: TIME_WAIT 814

2017-11-28 11:06:23 1726

原创 [php] 对象的浅复制与深复制-----“=” 与 “clone”

class ObjA{ public $num = 0; public $objB; function __construct(){ $this->objB = new ObjB(); } function __clone(){ $this->objB = clone $th

2017-10-30 11:49:57 212

原创 [php] 代码片段---csv 文件 header 头部信息

$csvFileName = "CSV数据.csv";$csvContent = "qwe,qwe,qwe,qwe,qwe,qwe,qwe \n";header("Content-Type: application/vnd.ms-excel; charset=GB2312"); header("Pragma: public"); header("Expires: 0"); he

2017-10-23 10:37:31 2890

空空如也

空空如也

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

TA关注的人

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