上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 51 下一页
摘要: 经常我们会遇到502错误 , 502错误究竟是啥呢 , 在字面意思是指bad gateway 网关错误 , 网关是啥 在我们的nginx + php-fpm中 , nginx相当于网关 ,但是这里的错误却是指的nginx的上游服务出错了 , 也就是fpm出错了. nginx连不上fpm或者fpm自身 阅读全文
posted @ 2020-03-23 11:13 唯一客服系统开发笔记 阅读(4844) 评论(0) 推荐(0) 编辑
摘要: 当我们开发时候需要对外开放接口 , 不管是GET还是POST , 都有点害怕对方传递给我们参数的方式被别人知道 , 然后直接改改参数搞破坏. 这时候就需要对参数进行一下安全的验证工作 , 对参数进行加密后的字符串拼接在要传递的参数后面 , 接收方同等加密进行判断一致 比如在get参数部分 , 一般有 阅读全文
posted @ 2020-03-23 10:18 唯一客服系统开发笔记 阅读(897) 评论(0) 推荐(0) 编辑
摘要: 在写代码的时候,经常要进行跳转连接,但是大家大部分不清楚302和301是啥区别,其实对于我们后端开发来说,这俩大部分没啥区别。 这俩的区别基本是语义上的区别 301是我这资源早就没有了,永远没有了,你跳走吧,然后我把Location传给你 302是我这资源没有了,下次有没有不知道,先临时跳走吧,这是 阅读全文
posted @ 2020-03-22 11:58 唯一客服系统开发笔记 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 这种模式是我们常见的oauth形式,例如第三方登陆,qq,微博等,都是使用的授权码模式,也是很多网站系统对外提供的接口形式 这种模式大体是需要两步,一般是先获取code , 获取完code后,拿着code去获取access_token 例如下面这俩接口: 1. 获取code https://b.co 阅读全文
posted @ 2020-03-21 15:31 唯一客服系统开发笔记 阅读(990) 评论(0) 推荐(1) 编辑
摘要: 项目中使用到了redis的哈希结构 , 哈希结构的内部编码类型是 ziplist 和 hashtable 当元素个数小于512 , 并且值的大小小于64个字节时 , 采用ziplist , 大于的时候采用hashtable ziplist最大的优势就是存储的时候是连续的内存 , 可以极大的提升cpu 阅读全文
posted @ 2020-03-20 09:52 唯一客服系统开发笔记 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 某个项目中路由是通过$_SERVER['REQUEST_URI']来进行的匹配处理 , 并且隐藏了index.php 前端路径是http://域名/static/css/xxx.css 而实际路径是位于 /绝对路径/template/static中 在这样的两种情况下 , 不改代码的条件下使用ngi 阅读全文
posted @ 2020-03-19 16:16 唯一客服系统开发笔记 阅读(1879) 评论(0) 推荐(0) 编辑
摘要: 面试的时候 , 大部分面试官会问mysql的索引问题 , 也是必问的问题 , 但是感觉大部分面试官都是把网上的面试题原封不动的说出来 , 要开发人员来应试答题. 这样的形式 , 我的理解是既不能体现出面试官的能力 , 又不能考察到程序员的mysql功力 , 基本是无意义的 . 如何在平常的开发中体现 阅读全文
posted @ 2020-03-18 10:03 唯一客服系统开发笔记 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 1. memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。 这种技术被称为 惰性过期。因此,memcached不会在过期监视上耗费CPU时间 ,与redis是有区别的. 2. memcached的过期时间,有一个最大时限就是30天,设置时若超过30天,存储时 阅读全文
posted @ 2020-03-16 11:06 唯一客服系统开发笔记 阅读(1560) 评论(0) 推荐(0) 编辑
摘要: add方法添加时,如果存在返回falseset方法添加时,如果存在就是覆盖,不存就是添加 1. set方法会在设置时,同时更新缓存的过期时间,这个地方如果是做频率限制功能,时间一定要过期时,注意不要使用这个方法2. 如果要做频率限制功能,可以使用add和increment方法配合 , 这样不会覆盖掉 阅读全文
posted @ 2020-03-16 10:59 唯一客服系统开发笔记 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 经常会被人问在什么场景下使用到了redis ? 这个问题和业务是很相关的 , 脱离业务需求的回答都不能说服别人. 在我的业务里有一个提交试用的表单申请 , 这个申请之前是默认直接存入数据库的订单表和企业表 . 后来不知道被那个闲人发现了,就一直往里提交垃圾数据 , 增加了验证码和手机短信验证码 , 阅读全文
posted @ 2020-03-12 09:30 唯一客服系统开发笔记 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 当有个功能要发送通知邮件时 , 大家都会去用PHPMailer来调用第三方的smtp发信 , 经常遇到莫名其妙的错误 ,不知道是什么原因 . 今天我也遇到了这种问题 , 在发信时一直都是false , 找了半天 这个类库最终还是拼接的smtp协议 , 与我们自己手动telnet然后 auth log 阅读全文
posted @ 2020-03-10 17:34 唯一客服系统开发笔记 阅读(845) 评论(0) 推荐(0) 编辑
摘要: PHP的很多框架里面都是通过获取$_SERVER['PATH_INFO']处理路由 , 这个变量是通过nginx传递过来的 , 我们在nginx中经常见到下面两句 fastcgi_split_path_info ^(.+\.php)(/.*)$;fastcgi_param PATH_INFO $fa 阅读全文
posted @ 2020-03-09 18:12 唯一客服系统开发笔记 阅读(3380) 评论(0) 推荐(1) 编辑
摘要: 1. 大部分互联网业务中 , 用户登陆功能是非常常见的模块 , 针对登陆功能的数据库设计常见的是下面这样的 User表 id username password ... 其他用户信息 查询时的逻辑类似下面 pass=query("select * from user where username=' 阅读全文
posted @ 2020-03-07 19:02 唯一客服系统开发笔记 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 大家知道OAuth协议是针对提供给第三方进行认证登陆的 , 感觉比较的复杂 , 但是在四种模式中最简单的一种叫做客户端模式 , 或者叫凭证模式 , 非常的容易理解 当对于我们针对一个非常信任的第三方去登陆时 , 可以采用这种模式 . 1. 首先要提供给第三方一个client_id 和 client_ 阅读全文
posted @ 2020-03-06 11:29 唯一客服系统开发笔记 阅读(4236) 评论(1) 推荐(1) 编辑
摘要: 当安装某些rpm包的时候 , 会爆出这个错误 Requires: libjson-c.so json-c是c语言下的json库 , 如果在centos6下可以访问下面这个页面找到64位的rpm包 , 一定要看清是4位还是32位 http://rpmfind.net/linux/rpm2html/se 阅读全文
posted @ 2020-03-04 10:34 唯一客服系统开发笔记 阅读(2247) 评论(0) 推荐(0) 编辑
摘要: php变量在赋值的时候是增加的引用计数,并不是又创建了一块内存空间 但是当新的变量值变更时 , 值从新赋予新的值时 , 就会减掉刚才的引用计数,并且从新创建内存空间. 上面的内容是显而易见的,重新赋值自然会重新创建内存空间,但是有一种情况也会发生这样的事 , 那就是在使用到引用符&的时候 , 也会发 阅读全文
posted @ 2020-03-03 17:03 唯一客服系统开发笔记 阅读(425) 评论(0) 推荐(0) 编辑
摘要: js中检测变量是否定义,可以用这个语句,比如: typeof a!=="undefined" 1. typeof的语法typeof是一个运算符,有2种使用方式:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。 2. typeof的返回值 typeof运算符 阅读全文
posted @ 2020-03-02 20:17 唯一客服系统开发笔记 阅读(1828) 评论(1) 推荐(0) 编辑
摘要: 先用一个数组表示一个二叉树搜索树,也就是一个排好序的二叉树,其中左子结点<根结点<右子结点 利用结构数组的形式来表示,id , left , right 代表结点id ,左子树 ,右子树 下面这个二维数组 $data[]=['id'=>8,'left'=>2,'right'=>10,'data'=> 阅读全文
posted @ 2020-03-01 22:21 唯一客服系统开发笔记 阅读(437) 评论(0) 推荐(0) 编辑
摘要: PHP中的引用就是两个变量指向了同一个地方,只要在变量前面增加了&符号,它就变成了一个引用 $a='aaa'; $b=&$a; $c=&$b; xdebug_debug_zval('a','b','c'); 输出结果是: a: (refcount=3, is_ref=1)='aaa' b: (ref 阅读全文
posted @ 2020-02-29 17:13 唯一客服系统开发笔记 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 按正常理解php的变量是引用计数,第一次创建变量refcount会是0,当把这个变量赋给新的变量时,refcount会加1 但是,经过测试,php7.0.33下和php7.3.11下效果都不是按照这个来的 代码: $val = "taoshihan best"; xdebug_debug_zval( 阅读全文
posted @ 2020-02-29 13:41 唯一客服系统开发笔记 阅读(506) 评论(0) 推荐(0) 编辑
摘要: chrome的开发者工具,在source选项卡下,可以看到js的源代码,有一个断点调试功能,就是在js的源代码行号那里点击一下,出现一个箭头,当再次刷新页面并且进行了相应操作时,就会停在断点的地方。我们可以查看相应的变量值,在右侧可以手动改变变量值,进行调试。 这个地方有一个缺点,就是没有办法对代码 阅读全文
posted @ 2020-02-28 17:06 唯一客服系统开发笔记 阅读(4913) 评论(1) 推荐(1) 编辑
摘要: MySQL使用存储的键分布基数来确定表连接顺序在决定对查询中的特定表使用哪些索引时,也会使用使用键分布基数 ANALYZE TABLE 表名 可以更新表的索引基数,使其更接近非重复的记录数,记录数可以使用show index from 表 来查询cardinality字段 mysql> show i 阅读全文
posted @ 2020-02-27 16:40 唯一客服系统开发笔记 阅读(598) 评论(0) 推荐(0) 编辑
摘要: docker inspect 容器名,可以查看到容器的元信息,在返回的j'son信息里面有个Mounts字段可以看到挂载目录 "Mounts": [ { "Type": "bind", "Source": "/data1/cmsphp", "Destination": "/data1", "Mode 阅读全文
posted @ 2020-02-27 10:57 唯一客服系统开发笔记 阅读(2313) 评论(0) 推荐(0) 编辑
摘要: mongo中的_id是一个objectid对象类型,不管是查询时作为条件,还是列表时展示内容,都需要进行一下抓换 查询时要转为objectid对象 列表时要把对象转成字符串覆盖回_id字段 $filter['_id']=new MongoDB\BSON\ObjectId($params['id']) 阅读全文
posted @ 2020-02-27 10:27 唯一客服系统开发笔记 阅读(1285) 评论(0) 推荐(0) 编辑
摘要: 企业选择 NOSQL 或非表格结构数据库,评估时应从以下五个关键维度来考虑:• 数据模型的类型• 查询模型是否能满足灵活的查询需求• 事务模型类型,以及一致性属于强一致性还是最终一致性• APIs 的成熟度• 商业支持及社区实力 1.数据模型类型:在我们的一个业务中,有一个文档模型的模块,该模块在增 阅读全文
posted @ 2020-02-27 10:12 唯一客服系统开发笔记 阅读(327) 评论(0) 推荐(0) 编辑
摘要: test() 方法用于检测一个字符串是否匹配某个模式 最近遇到的某业务中进行发票抬头的正则验证如下: console.log(/^[a-zA-Z\u4e00-\u9fa5\s()()<>《》\(\)\-]+$/.test("中国xxxx公司七五0试验场")) 当用户输入上面的公司名时报错false, 阅读全文
posted @ 2020-02-26 16:57 唯一客服系统开发笔记 阅读(1065) 评论(0) 推荐(0) 编辑
摘要: 在php7的mongodb扩展中,当要查询某个集合在某个条件下的数据个数时,可以使用下面的方式来获取。 比原生的命令要复杂许多 比旧版mongo扩展也复杂许多 需要使用到MongoDB\Driver\Command 这个类 //查询条件 $filter=[]; //当需要分页显示,排序,和忽略字段 阅读全文
posted @ 2020-02-25 15:47 唯一客服系统开发笔记 阅读(2097) 评论(1) 推荐(1) 编辑
摘要: 作为文档数据库,数据库中存储的数据是类似json的结构,比如{“modelInfo”:{"status":1,audited:"1"}},想要查询status是1的audited是1的,需要按照下面的结构 //这里要注意参数类型,一个是字符串 一个是整型 $params['modelInfo.aud 阅读全文
posted @ 2020-02-24 16:08 唯一客服系统开发笔记 阅读(493) 评论(0) 推荐(0) 编辑
摘要: Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码, 或者分享自己的代码。Yarn 做这些快捷、安全、可靠,所以你不用担心什么。通过Yarn你可以使用其他开发者针对不同问题的解决方案,使自己的开发过程更简单。 使用过程中遇到问题,你可以将其上报或者贡献解决方案。一旦问题被修 阅读全文
posted @ 2020-02-23 15:34 唯一客服系统开发笔记 阅读(1608) 评论(0) 推荐(0) 编辑
摘要: 一、ObjectId的组成首先通过终端命令行,向mongodb的collection中插入一条不带“_id”的记录。然后,通过查询刚插入的数据,发现自动生成了一个objectId“5e4fa350b636f733a15d6f62”这个24位的字符串,虽然看起来很长,也很难理解,但实际上它是由一组十六 阅读全文
posted @ 2020-02-22 19:10 唯一客服系统开发笔记 阅读(807) 评论(0) 推荐(0) 编辑
摘要: for循环体内的语句只有一行的情况的下,可以简化for循环的书写,尤其当你需要生成一个可迭代对象的时候 d = {x:x*10 for x in range(3)} print(d) d1 = [x*10 for x in range(3)] print(d1) 输出: {0: 0, 1: 10, 阅读全文
posted @ 2020-02-21 15:49 唯一客服系统开发笔记 阅读(3421) 评论(0) 推荐(0) 编辑
摘要: Python reduce() 函数reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运 阅读全文
posted @ 2020-02-19 16:45 唯一客服系统开发笔记 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 条件操作符用于比较两个表达式并从mongoDB集合中获取数据。MongoDB中条件操作符有:(>) 大于 - $gt(<) 小于 - $lt(>=) 大于等于 - $gte(<= ) 小于等于 - $lteMongoDB 使用 $regex 操作符来设置匹配字符串的正则表达式,使用PCRE (Per 阅读全文
posted @ 2020-02-18 16:13 唯一客服系统开发笔记 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 由字符串格式转化为日期格式的函数为: datetime.datetime.strptime() 由日期格式转化为字符串格式的函数为: datetime.datetime.strftime() # encoding: utf-8 import datetime day = datetime.datet 阅读全文
posted @ 2020-02-18 11:03 唯一客服系统开发笔记 阅读(11570) 评论(0) 推荐(0) 编辑
摘要: 必须加# encoding: utf-8否则报错 SyntaxError: Non-ASCII character '\xe6' # encoding: utf-8 import re regex= ur"\d{4}" #正则表达式 if re.match(regex,"2020-2-02"): p 阅读全文
posted @ 2020-02-18 10:40 唯一客服系统开发笔记 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作包括索引,切片,加,乘,检查成员。此外,Python已经内置确定序列的长度以及确定最大和 阅读全文
posted @ 2020-02-16 18:17 唯一客服系统开发笔记 阅读(199) 评论(0) 推荐(0) 编辑
摘要: assert语句是一种插入调试断点到程序的一种便捷的方式。 assert 3 == 3 assert 1 == True assert (4 == 4) print(' ') assert (3 == 4) ''' 抛出AssertionError异常,后面程序不执行 ''' print(' ') 阅读全文
posted @ 2020-02-14 15:23 唯一客服系统开发笔记 阅读(1076) 评论(0) 推荐(0) 编辑
摘要: 在python 判断语句中 None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()都相当于 False not None == not False == not '' == not 0 == not [] == not {} == not () 需要注意的是'0'这个 阅读全文
posted @ 2020-02-14 15:12 唯一客服系统开发笔记 阅读(5727) 评论(0) 推荐(0) 编辑
摘要: update() 函数把字典dict2的键/值对更新到dict里。如果后面的键有重复的会覆盖前面的语法dict.update(dict2) dict = {'Name': 'Zara', 'Age': 7}dict2 = {'Sex': 'female','Name':'zhangsan'}dict 阅读全文
posted @ 2020-02-14 11:32 唯一客服系统开发笔记 阅读(1489) 评论(0) 推荐(0) 编辑
摘要: MongoDB Limit与Skip方法配合进行分页MongoDB Limit() 方法如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。MongoDB Skip() 方法我们除 阅读全文
posted @ 2020-02-13 16:31 唯一客服系统开发笔记 阅读(769) 评论(0) 推荐(0) 编辑
上一页 1 ··· 26 27 28 29 30 31 32 33 34 ··· 51 下一页