waysonc 发布的文章

redis安装

yum install redis php-redis

redis启动

redis-server --port 6379 & (&是后台静默运行)

redis设置密码

vi /etc/redis.conf
找到requirepass,去掉前面的#号,后面添加密码

重启redis

systemctl restart redis
或者:ps -ef|grep redis => kill pid **

redis客户端连接

redis-cli -h host -p port -a password

redis操作

flushall // 清除所有数据库的所有keys
llen name // 获取某个key的长度
keys name // 查看某个key的redis内容

删除key_开头的所有key

keys "key_*" | xargs del
详细文档参考:https://www.redis.net.cn/order/3545.html

方法一(暂时生效)

直接运行命令export PATH=$PATH:/usr/local/MATLAB/R2013a/bin ,使用这种方法,只会对当前回话生效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。

方法二(只对当前登陆用户生效,永久生效)

执行 vim ~/.bash_profile 修改文件中 PATH 一行,将 /usr/local/MATLAB/R2013a/bin 加入到 PATH=$PATH:$HOME/bin 一行之后(注意以冒号分隔),保存文件并退出,执行 source ~/.bash_profile 使其生效,这种方法只对当前登陆用户生效。

方法三(对所有系统用户生效,永久生效)

修改 /etc/profile 文件,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/MATLAB/R2013a/bin
export PATH

最后执行命令 source /etc/profile 或执行点命令 ./profile 使其修改生效。

rpm包安装直接用用yum install xx.rpm可以解决依赖问题
用rpm命令进行安装不会安装相关依赖

  1. 数据库需要操作时间的字段尽量用int(11),方便不同其他种类的数据库数据同步,也避免像datetime存储时时区不同造成的麻烦
  2. 数据库表默认要有sys_createtime,sys_updatetime,sys_ip,sys_status(用于区分数据的新旧,方便数据量大的时候把没用的旧数据搬到其他表格存着)
  3. 如果数据库表的内容很多,为了提高查询效率,可以水平分表,按照表数量取模(如5表,table_0,table_1,table_2,table_3,table_4,按取模结果进行查询或存储)
  4. 数据库表的垂直分表
    解决问题:表的记录并不多,但是字段却很长,表占用空间很大,检索表的时候需要执行大量的IO,严重降低了性能。例如:

学生答题表tt:有如下字段:
Id name 分数 题目 回答
其中题目和回答是内容比较大的字段,id name 分数比较小。
为了查询快速,就会把id name 分数合成一章表

  1. 为了满足高并发,尽量不使用外键,只在代码中做好判断
  2. 字段设置一般都设置not null,有默认值,避免新建或更新数据时的开销还有索引优化
  3. 数据库操作不允许有delete,越是大型系统越要用数据迁移代替delete

关注这个问题一开始是因为做AB测试的时候发现cpu的占用率很高,一开始以为是nginx的问题,调了很久还是差不多,于是想会不会是php代码的问题,换成symfony官方demo做测试,结果还是一样,我就想会不会是symfony本身的问题,搜了下,果然symfony官网本身旧有关于性能优化的方案,跟着改进了下,发现cpu占用率从80%-100%降到20%-30%,主要分为以下几点:

  1. 使用OPcache字节代码缓存
  2. 配置OPcache以获得最佳性能
  3. 不要检查PHP文件的时间戳(记得生产环境要用apc_clear_cache()/opcache_reset()更新缓存)
  4. 配置PHP实际路径缓存
  5. 优化Composer Autoloader

详细参考:https://symfony.com/doc/current/performance.html

php-fpm优化

1、php-fpm优化参数介绍

他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。

pm:表示使用那种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。

在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。

- 阅读剩余部分 -

概念
LNMP中的N是nginx充当Web Server
内容的分发者,会在文件系统找到相应的文件,就返回给浏览器,如:nginx。如果是静态的文件,就可以直接返回,但是如果是index.php需要解析并执行的脚本文件时,Web Server就无力了,需要将请求转发给相应的脚本语言的解析器来解释并执行,最终将程序的执行结果,返回给Web Server,再返回给浏览器。
LNMP中的P是php充当后端的逻辑处理程序
那么php与nginx的常规协作方式是如何的呢?需要我们明确几个概念





- 阅读剩余部分 -

鉴于github.com的访问速度实在是慢的让人忍无可忍,加上私有项目必须给money,穷逼的我决定用码云:
由于之前已经使用过github了,把机器上的公钥复制出来,添加到码云里:
1.在"设置"->"ssh公钥"里面添加
2.点击右上角的加号,选择"从GITHUB导入项目",登录自己的github帐号就可以一键迁移了
3.在本地新建项目文件夹,进入文件夹,依次执行命令:
4.git init
5.git remote add origin git@gitee.com:XXXXX.git
6.git pull origin develop(本地开发环境只拉取develop的分支)

1.获取GitHub网站相应的ip
通过站长工具查询最小的TTL值的ip:请输入链接描述

需要获取ip的内容:
www.github.com
assets-cdn.github.com
github.global.ssl.fastly.net
注意: 我们可能得到多个ip,可以通过多次试验,选取TTL最小的一个;
这是我的:

13.229.188.59  www.github.com
13.229.188.59  github.com
151.101.228.133  assets-cdn.github.com
151.101.229.194  github.global.ssl.fastly.net

2.修改etchosts,在后面添加上面的代码
3.刷新dns缓存:
如果没装nscd服务,yum install nscd进行安装
需要刷新nscd服务就执行命令systemctl restart nscd就好了

备份原配置文件

[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak

查看centos版本

[root@localhost yum.repos.d]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

配置为阿里镜像源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

设置缓存

yum makecache

更新镜像配置,可以看到阿里镜像源

[root@localhost yum.repos.d]# yum -y update
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

  • base: mirrors.aliyun.com
  • epel: mirrors.njupt.edu.cn
  • extras: mirrors.aliyun.com
  • updates: mirrors.aliyun.com
    ————————————————

版权声明:本文为CSDN博主「911__init__」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pysense/article/details/99736639

Navicat:
优点:适合用来查看数据,显示交互比较友好,特别是excel跟数据库的互导
缺点:建模功能较弱,sql处理转换bug较多速度慢;

mysql命令行:
适合用来导sql文件,导入导出速度都很快,适合大数据导入导出
常用命令:
导出指定的库:
mysqldump --opt -hlocalhost -u root -p platform > platform.sql
导出指定的表:
mysqldump --opt -hlocalhost -u root -p -t testdb --tables table_one table_two > test2.sql

mysql workbench:
适合用来建模,对建立模型关系,转换表结构都很方便,交互很好,其他的都很弱

最近对关于个人知识管理的一点技巧:
由于对大部分时候接收外界知识都是在浏览器上进行的,所以归入chrome中
前言:我把知识/认知分为两种
一:是想成为个人大脑知识架构中一部分的;
二:是对自己可能有帮助,但是并不想成为自己大脑库存的一部分;
Diigo:一个谷歌的标签管理插件,用于管理非个人知识架构的内容,可以对浏览器当前页面进行标记,注解,对存储的网页进行标签化管理
个人博客:管理个人知识架构的内容,通过分类层级进行管理
浏览器书签:存放各大平台入口网址