![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
通用
hjxisking
这个作者很懒,什么都没留下…
展开
-
labuladong的算法小抄
火爆全网的算法小抄原创 2022-12-15 17:33:34 · 157 阅读 · 0 评论 -
解决SSH能连上,但是无法scp的问题
今天发现已经配置好免登的2台服务器之间使用SSH是可以登录的,但是scp就会持续阻塞无法传文件,也没找出是什么原因。既然SSH能通,那么就变相换了一种方式来替代scp// 复制本地文件到远程服务器tar czf - ./* | ssh user@otherserver.com tar xzf - -C ~/saved_tree// 反向获取远程服务器文件到本地ssh user@otherserver.com "tar czf - ~/saved_tree" | tar xzvf - -C原创 2022-03-04 11:14:43 · 5740 阅读 · 0 评论 -
用自增ID生成另一个长串数字的方法
实际应用场景中经常会遇到用什么方式来生成userId,常用的方式是直接使用Mysql的自增主键作为userId,优点是简单方便,插入时无须考虑userId重复的问题,缺点是位数不一致,如果userId还需要暴露给用户或者第三方,容易让他人估计出用户总数量,同时伪造userId也变得更方便。所以需要一个更好的方式来产生userId来代替自增主键。以下算法可以通过一个数字产生另一个位数相对固定的数字,同时还是可逆的。$seeds = [ '7893401256'...原创 2022-02-09 11:43:35 · 751 阅读 · 0 评论 -
从bitmap到bloom filter的应用
1. BitMapBit-map的基本思想就是用一个bit位来标记某个元素对应的Value,而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。(PS:划重点节省存储空间)假设有这样一个需求:在20亿个随机整数中找出某个数m是否存在其中,并假设32位操作系统,4G内存在Java中,int占4字节,1字节=8位(1 byte = 8 bit)如果每个数字用int存储,那就是20亿个int,因而占用的空间约为 (2000000000*4/1024/102...转载 2022-01-13 20:24:36 · 225 阅读 · 0 评论 -
.git目录过大解决方法
说明:一般仓库文件不大时,我们都可以用这个方法git clone仓库,但问题是有时候,在仓库历史的某次commit时,有人不小心提交了1G的文件,虽然后面的commit中他把这个文件删除了,但是在.git文件夹中仍然存储着这个文件,所以如果我们克隆仓库这个仓库,会把所有的历史协作记录都clone下来,这样整个文件会非常大,其实对于我们直接使用仓库,而不是参与仓库工作的人来说,只要把最近的一次commit给clone下来就好了。这就好比一个产品有很多个版本,我们只要clone最近的一个版本来使用就行了。实现这原创 2021-11-12 11:54:26 · 692 阅读 · 0 评论 -
一款好用的Windows端快捷启动工具——Wox Launcher
软件介绍在Windwos下打开程序或文件平常的操作是在菜单或桌面上找到图标,然后点击打开,这无疑很麻烦、很慢,还会使桌面凌乱如果你也不喜欢桌面上满是程序的快捷方式,如果你也不喜欢翻找又臭又长的程序菜单和层层叠叠的文件目录,如果你也喜欢简单干净的桌面,那么你真的需要一款好用的快速启动器软件Wox是一款非常优秀的开源的快速启动工具,作者说灵感源自 Alfred 和 Launchy,用户可以通过高效的键盘操作,使用搜索框快速启动程序、打开文件、搜索网页等,通过插件还可以实现更多功能,如翻译单词、弹出转载 2021-08-23 10:52:07 · 1473 阅读 · 0 评论 -
Git分支差异文件打包
# 打包前先 git fetch; git pull 本地仓库最新git diff <分支|tag名> --name-only | xargs zip patch.zip原创 2021-08-16 10:36:33 · 454 阅读 · 0 评论 -
Graylog初探
Graylog架构Graylog组要组成部分有:Graylog nodes:用户操作界面,展示收集的日志数据;同时也是Graylog服务主体,开放不同的端口和inputs,来接受外界传入的的日志数据,本身提供了GELF(graylog extension log format)协议格式的日志数据,同时也支持很多其他的格式,具体可以参考inputs里的内容。更关注CPU能力 Elasticsearch:索引日志数据用户存储和搜索,更关注的是I/O以及内存能力...原创 2021-08-02 20:06:23 · 452 阅读 · 0 评论 -
win10无法匿名访问SMB共享文件夹
win10 无法匿名访问SMB 共享文件夹亲测有效一、RS3或以上,需要用这个注册表,才能使win10像win7一样匿名访问其他电脑。Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters]"AllowInsecureGuestAuth"=dword:00000001亲测有效二、打开控制面板---.转载 2021-05-11 15:28:55 · 3007 阅读 · 0 评论 -
闭包和匿名函数的区别
有些同学会不理解什么是闭包,和匿名函数有什么区别,为什么闭包会占用内存?什么是闭包?一个函数和与其相关的环境组合而成的实体由于闭包是和其所在环境相关的,所以直到闭包对象被释放,闭包内部的内存是不会释放的举个例子func main() { f := adder() fmt.Println(f(1), f(2), f(3)) // 2, 4 7}func adder() func(int) int { x := 1 return func(d int) int { x +原创 2021-04-12 17:46:36 · 176 阅读 · 0 评论 -
kafka利用自带的zookeeper进行集群部署
一、前提条件1、部署Kafka集群搭建需要服务器至少3台,奇数台2、Kafka的安装需要java环境,jdk1.83、Kafka安装包版本:https://mirror-hk.koddos.net/apache/kafka/2.7.0/kafka_2.13-2.7.0.tgz4、3台机器增加host配置:192.168.202.129 kafka-1.local192.168.202.130 kafka-2.local192.168.202.131 kafka-3.local...原创 2021-01-28 15:20:20 · 2858 阅读 · 0 评论 -
docker:基于centos7镜像部署的php-fpm的9000端口无法被nginx访问的问题
记录下,使用docker部署nginx+php时遇到的一个坑问题描述:nginx使用的是官方镜像,php是基于centos7镜像基础上构建的,至于为什么不直接使用官方php镜像?因为还要装一些依赖扩展,比如phalcon框架,是一个需要编译的扩展,还有其他很多东西,构建完之后发现nginx无法访问php的9000端口docker exec -it my-php-container /bin/sh # 登到php的容器里telnet 127.0.0.1 9000Trying 127.0.0.1原创 2020-08-14 16:46:14 · 3129 阅读 · 1 评论 -
如何创建软连接时排除部分目录
目标目录结构如下/tmp/link - app - conf - data - view如何创建2个软连接目录,但是只排除conf,以便定义不同的配置而使用相同的代码库?# /tmp/link1,/tmp/link2 必须是一个事先创建好的目录ln -s `ls /tmp/link | grep -v conf | awk '{print i$0}' i='/tmp/link/'` /tmp/link1ln -s `ls /原创 2020-07-10 16:36:56 · 615 阅读 · 0 评论 -
Linux开启SELinux的情况下怎么解决nginx403跟502错误以及打开非http端口
先说下SElinux是什么,其实我也看不太懂,不过我了解了一点规则先说下两个命令跟参数ps -Z ls -Z 注意Z参数可以显示出SElinux的信息如下图红圈,第一个是进程的SElinux信息,第二个是文件的SElinux,system_u是用户,object_r是用色,http_t是类型,这个类型比较重要,其它的好像没啥影响就直接点说nginx来说,这个进程只能访问httpd_sys_content_t类型的文件,所以如果出现403的话,就是你的www目录的类型不对,所以得把www目转载 2020-05-14 11:21:46 · 518 阅读 · 0 评论 -
如何在Windows中使用netsh命令进行端口转发
自Windows XP开始,Windows中就内置网络端口转发的功能。任何传入到本地端口的TCP连接(IPv4或IPv6)都可以被重定向到另一个本地端口,或远程计算机上的端口,并且系统不需要有一个专门用于侦听该端口的服务。在Linux中,使用iptables可以非常轻松地配置端口重定向。在Windows Server系统上,路由和远程访问服务(RRAS)通过使用虚拟专用网络 (VPN) 或拨号连接支持远程用户或站点到站点连接,但这种方式相对较为麻烦。其实,除此之外还有一种更为简单的方法可以帮助我们在Wi转载 2020-05-09 10:32:12 · 990 阅读 · 0 评论 -
sourcetree使用ppk文件访问git仓库
右下角的 pageant(Putty authentication agent)右键 -> add Key,选择ppk文件原创 2020-05-07 11:29:36 · 1473 阅读 · 1 评论 -
swagger生成php接口文档
1. 安装前端git clone https://github.com/swagger-api/swagger-ui.gitswagger-ui下载下载之后找到dist目录, 打开index.html把其中的那一串url改成自己的, 比如http://localhost/yii2/swagger-docs/swagger.json然后打开URL就可以看到前端界面了, 应该是没内容...转载 2020-04-07 13:45:57 · 1143 阅读 · 0 评论 -
phpstorm远程调试
phpstorm远程调试代码,即php是运行在远程服务器上的,本地代码和远程代码保持同步即可(利用共享目录是一个很好的方式)参考:https://segmentfault.com/a/11900000197750711. centos7下安装php7.1rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-late...原创 2020-04-06 15:48:58 · 829 阅读 · 0 评论 -
CentOs7下安装mysql5.7.23(rpm安装)
准备一台装有centos7.3的电脑(或虚拟机),mysql-5.7.23-1.el7.x86_64.rpm-bundle.tarmysql的rpm安装集合包下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloadsSelect Version: 5.7.29Select Operation Sy...转载 2020-04-04 15:10:01 · 464 阅读 · 0 评论 -
SourceTree 3.1.3安装时跳过注册方法
SourceTree 3.1.3 版本跳过bitbucket注册方法,而不是网上所谓的SourcetreeEnterprise跳过bitbucket注册方法。首先下载并安装好git程序。 接着下载并执行SourceTreeSetup-3.1.3.exe,会进入登录或注册bitbucket的界面。 我只是想用软件,并不想去注册账号。怎么办?请往下看。 关闭上述安装窗口,打开%LocalA...转载 2020-04-03 09:43:34 · 602 阅读 · 3 评论 -
centos下elasticsearch7.5安装
1. 安装jdk 1.8,http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,下载jdk-8u241-linux-x64解压到/usr/local/jdk1.8.0_241/编辑 sudo vim /etc/profile#javaexport JAVA_HOME=...原创 2020-02-11 14:45:52 · 155 阅读 · 0 评论 -
win10下WSL安装php环境遇到的问题
1. php-fpm建议使用sock文件的模式,因为php-fpm的log里会报ERROR: failed to retrieve TCP_INFO for socket: Protocol not available,这个是WSL的问题(貌似高版本修复了这个问题,没确认过)2. WSL下使用sock文件的方式访问会一直超时,需要在 /etc/nginx/nginx.conf 的 http ...原创 2020-01-19 22:22:26 · 1901 阅读 · 0 评论 -
依赖注入loC/DI
把有依赖关系的类放到容器中,解析出这些类的实例,就是依赖注入。目的是实现类的解耦。实例:Class A中用到了Class B的对象b,一般情况下,需要在A的代码中显式的new一个B的对象。采用依赖注入技术之后,A的代码只需要定义一个私有的B对象,不需要直接new来获得这个对象,而是通过相关的容器控制程序来将B对象在外部new出来并注入到A类里的引用中。这样做有什么好处呢?解释:假如现在有N...转载 2019-12-31 14:28:03 · 569 阅读 · 0 评论 -
设计模式六大原则(PHP)
设计模式的目的是为了更好的代码重用性,可读性,可靠性和可维护性。常用的六大设计模式有:单一职责原则(SRP),里氏替换原则(LSP),依赖倒转原则(DIP),接口隔离原则(ISP),迪米特法则(LOD),开闭原则(OCP)。1.单一职责原则(Single Responsibility Principle)该原则是针对类来说的,即一个类应该只负责一项职责。假设有一个部门的类叫做T,...转载 2019-12-05 14:26:32 · 94 阅读 · 0 评论 -
一些正则表达式
匹配(]*src=['|"]?)[\S]+['|"]?>[\s]*原创 2014-10-27 11:41:08 · 264 阅读 · 0 评论 -
sublime text修改TAB缩进为空格
普通方式设置sublime text2的tab为4个空格的方式:如果以上办法无效,可以参考转载 2014-08-28 10:53:01 · 1693 阅读 · 0 评论 -
关于RSA算法密钥长度/密文长度/明文长度
zhuanzai1.密钥长度rsa算法初始化的时候一般要填入密钥长度,在96-1024bits间(1)为啥下限是96bits(12bytes)?因为加密1byte的明文,需要至少1+11=12bytes的密钥(不懂?看下面的明文长度),低于下限96bits时,一个byte都加密不了,当然没意义啦(2)为啥上限是1024(128bytes)?这是算法本身决定的...当然如果某天网上出转载 2014-08-18 21:55:21 · 2460 阅读 · 0 评论 -
Nginx + GridFS 实现的缩略图处理机制 « weberliu.com
场景在 B2C 系统中,由于页面上大量的使用商品的缩略图,因此如何来处理和存储缩略图也就显得尤为重要了。以前在做 Ecshop 的时候出于用户服务器环境的限制,我们是在图片上传的时候来根据系统设置来生成缩略图。这样带来的问题是:用户更换模板以后有可能调整图片的大小,而导致之前生成的缩略图不可用,因此在 Ecshop 中提供了重新生成缩略图的功能。在新的B2C系统开发之初,我们就对缩略图的生转载 2014-03-31 14:03:58 · 658 阅读 · 0 评论 -
Nginx + PHP + MySQL 在 CentOS 下的编译安装
较详细的老版本:http://blog.s135.com/nginx_php_v6新版本:http://blog.s135.com/nginx_php_v7/转载 2013-12-13 16:07:10 · 376 阅读 · 0 评论 -
sublimeText2 快捷键
转载自:http://www.cnblogs.com/Shane-Chow/archive/2013/01/30/2883098.html一个好的编辑器,能大大提高编程的效率。如果能熟知软件的快捷键,那更能让你得心印手。这些内容都是我网上和自己实际使用过程中所收集而来的,在网络上应该也算比较全面的了吧。欢迎大家补充,我也会在以后慢慢添加上来。插件使用方法:Ctrl+Shift+P转载 2013-12-05 10:24:13 · 407 阅读 · 0 评论 -
二层和三层、四层交换机工作原理
第二层交换机概念众所周知,第二层交换机,是根据第二层数据链路层的MAC地址和通过站表选择路由来完成端到端的数据交换的。工作流程二层交换机具体的工作流程如下:(1) 当交换机从某个端口收到一个数据包,它先读取帧头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;(2) 再去读取帧头中的目的MAC地址,并在地址表中查找相应的端口;转载 2013-12-03 11:38:53 · 1025 阅读 · 0 评论 -
七层协议和四层协议的简单描述
转载自:http://blog.sina.com.cn/s/blog_7f83f8890100xnsm.htmlOSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在1978(m转载 2013-12-03 11:35:52 · 775 阅读 · 0 评论 -
开源图表工具
介绍:http://ecomfe.github.io/echarts/doc/slide/whyEcharts.html#/github:https://github.com/ecomfe/echarts不错的开源图表工具转载 2015-02-12 16:54:06 · 330 阅读 · 0 评论 -
编程面试过程中常见的10中数据结构算法的基本概念
以下是在编程面试中排名前10的算法相关的概念,我会通过一些简单的例子来阐述这些概念。由于完全掌握这些概念需要更多的努力,因此这份列表只是作为一个介绍。本文将从Java的角度看问题,包含下面的这些概念:1. 字符串如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法。toCharArray() // 获得字符串对应的char数组Arrays.sort() // 数组排转载 2015-03-03 10:47:39 · 388 阅读 · 0 评论 -
RSA不同格式的key转换
Openssl转换: 1) 在执行该命令前请对私钥备份。2) 在私钥内容前加入-----BEGIN PRIVATE KEY-----后换行,3) 在私钥内容尾换行后加入-----END PRIVATE KEY-----4) 执行命令为opensslpkcs8 -nocrypt -in pkcs8_rsa_private_key-out pkcs1_rsa_pr原创 2015-03-16 16:53:37 · 805 阅读 · 0 评论 -
DHexchange密钥交换算法
login服务为L,客户端为C(1)L产生随机数challenge,并发送给C,主要用于最后验证密钥secret是否交换成功。(2)C产生随机数clientkey,clientkey是保密的,只有C知道,并通过dhexchange算法换算clientkey,得到ckey。 把base64编码的ckey发送给L。(3)L也产生随机数serverkey,serverkey是保密的,只有L...转载 2019-04-16 16:18:03 · 1581 阅读 · 0 评论 -
设计模式-状态模式(State)
本文出自 http://blog.csdn.net/shuangde800基本常识: 策略模式和状态模式是双胞胎,在出生时才分开认识状态模式假设有一个糖果机, 它的工作状态图如下:要用代码实现糖果机的功能, 如果不用状态模式:一种方法是创建一个类,它的作用就是一个状态机,对每一个动作,我们都创建了一个对应的方法,这些方法用条件语句来决定在每一个状态内什么方法是最恰当的.比...转载 2019-01-17 21:58:42 · 177 阅读 · 0 评论 -
面试时如何向公司提问?
转载自:http://blog.jobbole.com/25486/很多人将面试看作一种单向选择,事实上,面试是一种双向选择:不仅是公司挑选你,也是你挑选公司。面试就是为双方提供互相了解的机会,公司在评估你,你也在评估公司。面试官也知道这一点,所以他们有心理准备,期待你提出问题,并且会做出回答。所以,面试时不要浪费向公司提问的机会。而且,你主动提问,表明你比较重视这个职位,会加深面转载 2015-07-10 13:34:16 · 575 阅读 · 0 评论 -
再谈“我是怎么招聘程序员的”
转载自:http://coolshell.cn/articles/4506.html http://coolshell.cn/articles/4490.html我以前写过一篇“我是怎么招聘程序员的”的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因:近半年来我在进行了大量的招聘工转载 2015-07-10 13:30:38 · 433 阅读 · 0 评论 -
我是怎么招聘程序员的
转载自:http://coolshell.cn/articles/1870.html很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章。工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,我个人觉转载 2015-07-10 11:49:34 · 439 阅读 · 0 评论