个人笔记 (偶尔更新)

个人笔记 (偶尔更新)


mysql

索引
作用: 加快查询速度
缺点 :1 并不是越多越好
2 会大大的减缓读写速度
3 占据更多内存

基础查询 常用聚合函数 count(总数) sum(求和) avg(字段)平均数

select 选择模式|表达式 form 数据源 where子句 group by子句 分组 having子句 条件 order by子句 排序 like子句 %xx% 模糊匹配 limit子句 限制条数

先执行 where 条件搜索 在进行分组处理

子查询 学习可以搜索 经典sql 50

子查询工作当中查询过多时 尽量避免使用 因为不走索引 效率低下 不过某些时候 不得不使用

子查询用法 : select * from (select * from a)as a ;

正规公司流程

第一步
市场调研
市场部出MRD文档

第二步
需求分析 (PRD)
产品部需求分析
产品分析需求文档
概要分析(与技术进行沟通)
差异化分析 需求人群分析

第三 步 PRD由技术部查看

原型图
流程图
结构图
版本号

第四步 详细设计阶段

技术选型
详细设计
周期 人数 模板 进行分配

第五步 进行编码

第六步 测试

第七步 运维进行 上线 维护

服务器
到两台时 把mysql分出来 只有linux和mysql
在三台时 进行读写分离 主库 开启binlog日志 从io和sql 能够在低并发下支撑五万人左右 高并发最高大概在300左右
mysql 高并发简单sql大概能够处理二百左右 复杂的sql会有所锐减
并发并不是一秒内的同时访问 高并发是同一时刻访问 三分之一秒才算是同一时刻
(热数据=比较火热的数据)

PV 页面点击数 点击一次加一
UV 一个终端的访问 终端数 手机电脑 各个终端 记录
IP IP访问记录一次

php在多个服务器中  同时部署自己代码  负载均衡  把多个响应分配给各个不同的机器     
静态服务器 上传图片时  

一个PV等于一个请求 日请求量在50w的网址 大概配置(Linux+nignx)++(upstrecom)+(proxy)+(静态服务器 监听其他服务器文件变化 如果该文件有所变化 把它移来) ++ DB(数据库)
(大DB 一主多从或多主多从 多主多从时 互为主从 数据库中间件 一个软件 例如mycat ) (redis 在php和db中间 存放访问最频繁的数据存放在缓存 没有这个缓存再去访问数据库) (队列中间件) 进入队列就算下单成功 进入队列之后慢慢处理
运维的连接(堡垒机(跳板机)) 我们连接堡垒机 通过堡垒机连接我的架构 设置公钥和私钥 php分配公钥 通过私钥同时操作公钥操作 以前集群服务器session存放在 (session服务器)
如今 session_id 可以放在缓存中 因为session不必存放很久

负载分发 rr轮询比 ip哈希更好 因为ip哈希分配 同一地区 ip相似 很可能面临高并发

集群->巨石应用

访问令牌加数据加密

数据加密

https与http没有什么本质的区别 只是花钱多做了一个CA证书 使客户端c-s服务器端 Rset https 拥有安全加密

使用加包工具可以获取电脑所有数据 比如 使用pc安卓模拟器 安装京东 使用抓包工具 如果不加密 被黑客监听 会有安全隐患

md5 sha1 属于非对称加密 不可解密 所以不能用于银行卡信息数据加密 我们的目的是让加密状态的信息 到服务器端使用 所以需要使用对称加密方式 AES和DES and RSA ,Base64

aes和des 偏移量 的需要自己去写 php没有完整实现

php生成公私钥 安装扩展 先生成私钥 后生产公钥

打开openssl 生成私钥 存放在一个资源的参数中 生成公钥 也放在一个资源 如果公钥加密 使用私钥解密 如果私钥加密 那么就使用公钥解密

RSA 对数据加密前 先生成秘钥::公钥 然后去进行数据加密 服务器存放私钥 数据传来 使用私钥 进行数据解密 解密之后 公钥和私钥进行销毁 如果黑客拿到私钥 想要进行解密 此时 公钥已经销毁 这样 提升安全性 安全性大大提升

base64 是一种通用算法 使用base64_encode加密 支持php java c c++ 但是由于是一个通用算法 其加密形式 又拥有特点 非常容易被人发现 是base64加密 使用base64_decode 然后进行解密

所以客户端需要与服务器进行约定 把base64加密后的值 位置调换 比如第2位换到第1位 因为有所规则 所以安全性比RSA差些

访问令牌
author_token 用户权限令牌 access_token 访问令牌

http属于无状态协议 无法携带任何状态 cookie属于游览器机制 我们app无法使用 所以我们只能使用access 不过访问令牌我们一般不用使用 只有在支付时 才会使用访问令牌

客户端生成一把钥匙 服务器把钥匙解开 看是否拥有我要的数据 如果数据不是我要的 那
么没有我的权限访问

s端钥匙写在配置文件 在c端发来时 看是否相同 钥匙需要加密 否则被抓包工具抓到 会解密 获取钥匙

我们需要c端key AES加密(盐#当前时间精确到秒#干扰随机key) s端 查看精确到秒的那个时间 与服务器端时间差多少秒 设置过期时间

可能问题: app在手机端 手机可能设置时间与服务器端不同 解决方案 服务器开放一个接口 让c端获取服务器的当前时间

可能问题: 上面之后 不过这只是解决手动操作的黑客 他手动操作较慢 会被这种方法挡住 但是如果使用程序的高级黑客 每秒的数据都会被抓包 这个时候我们应该怎样呢
解决方案 在我们每次安装app时 我们的app自动获取一个s端的app_id 如果同一用户在同一时刻 多次访问 如一秒访问五次 这种一定是程序行为 我们可以禁止这种

可能问题 更高级的黑客 使用多个用户账号 做每秒一个用户访问的轮询

解决方案 c端维护一个key生成器 s端一样 我们要保证每一分钟的随机key相同 如果c端生成的随机key与s端的相同 允许访问 而如果 黑客抓包获取随机key也可以访问 这个时候应该怎么避免呢

解决方案续: key值使用aes加密 由盐+码+当前时间 盐值和码需要再次加密 双重加密 黑客解开外层保护时 里面还有盐值和码的二次加密 服务器拿到公钥 使用aes解密算法 看盐和码时候在那个时间生成 这样在黑客拿到后 破解之前 理论上 是个失效的码 如果不是超级计算机黑客 大多黑客都可以防御成功

以上在游览器端 不能实现 因为js可以看到我们的源码 任何加密都毫无意义 我们需要在app实现 java打包 转换为中介语言 黑客无法获取源码 这才有意义

如果访问对象也是一个服务器 因为其ip固定 那么我们除了简单验证之后做一个ip白名单即可就好
以后的时代 我们人手一个ip地址 如同身份证

Author_Token

作用 : 解决会员权限问题 目的代替session

原因 : app无法使用session 我们需要记录用户登录状态

使用 : c端传用户名密码到s端 s去db查看是否对 如果对的 生成token 而token使用md5加密 把token传给c端 token拥有过期时间 在过期之前 c端大多操作都可以根据token免除很多无必要操作 优化用户体验

而如果在支付时 即使拥有token也需要重新输入密码

建表时 牢记创建u_tokent表 id uid t_token end_time 在关闭c端时销毁数据 只剩表结构

windows下编译方式安装 php+mysql+redis+apache+nignx

做项目

1配置环境
① hosts 域名指向

网络的世界 没人知道你的域名 网络只认识你的ip 作为你身份证的证明 而在一个公司 公司不同的机房 不同的端口 不同的ip 为了我们不至于记一些无谓的东西 发明了域名 之后我们访问域名 就会看到域名绑定的ip地址 然后去访问ip地址

DNS解析 通过ip查找地址 先去hosts查看自己电脑缓存的dns 如果有 就会访问自己缓存的 如果没有的 就会访问local.dns 就是离自己最近的机房dns(缓存服务器) 在那些联通 移动的机房 会有别人买的公共dns

一个网址 |test|.|com| 一个域名为三部分 .为根服务器 缓存服务器找不到我们要找的地址时 根服务器给你个ip让你 查找到.com 然后再根据.com 查找到备案的真正的地址 test.com

创建虚拟主机 域名挂在虚拟主机 监听80端口

② 创建DB 字符集 UTF8 表引擎 InnoDB

③ 创建项目目录

④ 前端目录

b=&$a; &传递符 指针

内存分为两个部分 栈和堆 变量名在栈中 值在堆中 指针可以把两个变量 指向同一个值
对象是传引用的 变量是传值的 $a = new a() $b = $a

微信登录

需要全局使用的东西 需要写到app.xxx中 如果写到某个页面中 需要访问某个页面才会获取

调用wx.login()获取临时code 传回开发者服务器 调用code2accessToken 获取OpenID和session_key 根据这两个 生成token
$res = json_decode(接口地址);
t o k e n = M D 5 ( token = MD5( token=MD5(res -> o p e n i d . openid. openid.res->session_key.‘任意规则’);

token入库

小程序把token令牌返回app.js wx.setStorageSync(‘token’,res.data.token)

字符串都是用单引号包起 这样减少双引号判断是否变量 提升效率

SKU
不同的属性在一起组成不同的商品 如不同颜色和不同内存的相同牌子型号手机 属性的不同 库存也不会相同

优惠券 可以先生成优惠券 客户领取 可以查询是否有领取人为空的劵 有 就再给改下优惠券表的用户id 如果为空 就提示为空 这样可以防止高并发

我们可以根据用户行为分析数据 比如确认用户地址 如果要使用用户行为分析 需要建表记录用户行为

举报功能 信息安全功能 如果拥有不良信息 强制要求 如果违反 国家会查 可能会封机房

反三范式 提高效率 可以提高查询速度

文件夹下 有文件句柄 如果拥有过多文件个数 会慢很多倍

long2ip ip2long ip和int互相转换 公司存入int字段 所以需要转换

c端 客户端 s端 server 服务器端

在不知道表中数据 拥有多少时 一定要写limit
原因:如果数据过多 会爆炸滴

如何检测MySQL中建立的索引是否生效
使用方法,在select语句前加上explain就可以了:

EXPLAIN SELECT surname,first_name form a,b WHERE a.id=b.id

索引原理
索引 等于单独一个表 表中记录单个字段的数据 这样查询数据会减少 提升速度

索引不应该太多 如果索引过多 索引文件变大 就无效果了
且插入时 会变慢 因为还要插入索引文件 还要删除索引文件

慢日志

是否开启慢日志 文件位置 阀值(超过多少秒的时间记录)

支付

支付完成->回调函数

电商系统中 流量指的是人流

APP通过应用市场下载

购物车 使用radis 进行存储

会话控制技术

为什么要使用它

首先 我们web 是用过http协议而http协议是一种无状态协议 也就是说 http协议没有办法维护两个事物的状态 而正是这样 同一个用户在连续访问两次相同的页面时 它斌不会认为这是相同的用户 会把它当做两个独立的请求 它也就会把这两次请求隔离开 如果用户执行登录操作 http不会记得该用户执行过登录操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
辽B代驾管理系统对代驾订单管理、用户咨询管理、代驾订单评价管理、代驾订单投诉管理、字典管理、论坛管理、公告管理、新闻信息管理、司机管理、用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行辽B代驾管理系统程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。辽B代驾管理系统的开发让用户查看代驾订单信息变得容易,让管理员高效管理代驾订单信息。 辽B代驾管理系统具有管理员角色,用户角色,这几个操作权限。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 辽B代驾管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理代驾订单信息,管理公告信息等内容。 辽B代驾管理系统针对用户设置的功能有:查看并修改个人信息,查看代驾订单信息,查看公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看代驾订单,删除代驾订单操作,新增代驾订单操作,修改代驾订单操作。公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。新闻管理页面,此页面提供给管理员的功能有:新增新闻,修改新闻,删除新闻。新闻类型管理页面,此页面提供给管理员的功能有:新增新闻类型,修改新闻类型,删除新闻类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值