接触到的文章:
- http://blog.csdn.net/weiyang7545/article/details/51742290
- https://github.com/geasyheart/swift_rpc
- https://github.com/zetaops/websocket-tornado-rabbitmq-example
今天开始测试发送工作..
rabbitmq pub:
1 |
|
今天开始测试发送工作..
rabbitmq pub:
1 |
|
1 | from datetime import timedelta |
1 | import click |
运行方式:
python filename.py -n zzzz - a 22
1 | import logging |
_id
默认使用ObjectId
类型直播课的元信息
1 | { |
课程服务承诺策略 Policies:
(十位相同的选项只能选一个)
策略 | 含义 |
---|---|
00 | 支付保障(默认勾选) |
10 | 随时退款 |
11 | 前三节课前退款 |
12 | 课前随时退款 |
13 | 不支持退款 |
20 | 课后有回放 |
30 | 承诺包过 |
直播课的评论
追加评论的时候可以选择修改Rate评分的数值
1 | { |
直播课的购买记录
1 | { |
1 | { |
直播课程老师元信息
1 | { |
网易云视频直播频道信息
1 | { |
直播间管理
1 | { |
学生课程签到信息
1 | { |
学生课时完成度信息
1 | { |
之前IOS同事告诉我,说二维码加密的字符串包含/等url敏感字符,需要改动这个BUG,我看了下之前写的代码,就是使用b64encode/b64decode进行编码/解码,方便对加密后的字符串进行HTTP的一些操作。 我一想把它改成urlsafe的不就行了么,我这边本地写完然后测下没问题,但是到测试环境的时候发现二维码还是解不开,此处涉及到两个方面,1)对原来二维码的加解密,2)对新码的加解密。由于我做了适配,就是解码先用urlsafe_b64decode进行解码,如果遇到问题,还使用原来的方式,加密的话则使用新的方式。但是线上最终还是出问题了,唉,可恶的unicode编码问题。
1 | # mkdir learngit |
1 | # git status |
1 | # git log |
1 | # git diff filename |
回退到上一个版本:
1 | # git reset --hard HEAD^ |
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
1 | (1)如果修改了还未add进暂存区,那么可以使用: |
1 | # rm test.txt |
1 | 在远程仓库中创建这个版本库,然后添加秘钥,然后推送上去: |
1 | 创建dev分支,然后切换到dev分支: |
1 | 例如: |
1 | git checkout -b dev |
多人协作:
git clone git@github.com:geasyheart/learngit.git
要在dev分支上开发,就必须创建远程origin的dev分支到本地:
git checkout -b dev origin/dev
修改提交
git push origin dev
git branch –set-upstream dev origin/dev
git pull
1 | # git checkout master |
1 | # git tag -d v0.1 删除tag v0.1 |
忽略特殊文件:
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
忽略文件的原则是:
忽略操作系统自动生成的文件,比如缩略图等;
忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。
例如一个简单的.gitignore文件:
Windows:Thumbs.db
ehthumbs.dbDesktop.ini
Python:*.py[cod]
*.so
*.egg
*.egg-info
dist
build# My configurations:db.ini
deploy_key_rsa
git add -f filename可以强制添加文件
git check-ignore支持检查功能
git支持很多种工作流程,我们采用的一般是这样,远程创建一个主分支,本地每人创建功能分支,日常工作流程如下:
去自己的工作分支
1 | $ git checkout work |
[root@localhost tengine-2.1.2]# tar xf tengine-2.1.2.tar.gz
[root@localhost tengine-2.1.2]# useradd -s /bin/false -r tengine
关于tengine,是阿里根据Nginx再次修改的,关于源码编译的核心之处在于按需编译,之前文档也有写到,所以这里只指定安装路径等基础信息,其他将不指定;
[root@localhost tengine-2.1.2]# yum -y install openssl-devel pcre-devel
[root@localhost tengine-2.1.2]# ./configure –prefix=/usr/local/tengine –user=tengine –group=tengine
[root@localhost tengine-2.1.2]# make && make install
设置成开机自启:
[root@localhost sbin]# vim /usr/lib/systemd/system/tengined.service
1 | [Unit] |
[root@localhost sbin]# systemctl enable tengined.service
关于tomcat不做叙述,以前文章中有…
http://geasyheart.blog.163.com/blog/static/242548036201593094744315
[root@localhost ~]# wget -c http://download.redis.io/releases/redis-3.2.0.tar.gz
[root@localhost ~]# tar xf redis-3.2.0.tar.gz -C /usr/local
[root@localhost redis-3.2.0]# yum -y install tcl
[root@localhost redis-3.2.0]# make && make test && make install
启动脚本:
1 | [Unit] |
[root@localhost ~]# wget -c https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
[root@localhost ~]# rpm -ivh pgdg-centos95-9.5-2.noarch.rpm
[root@localhost ~]# yum -y install postgresql95-server postgresql95-contrib
[root@localhost ~]# systemctl enable postgresql-9.5.service
初始化数据库
[root@localhost ~]# /usr/pgsql-9.5/bin/postgresql95-setup initdb
[root@localhost ~]# systemctl start postgresql-9.5.service
配置文件位置
[root@localhost ~]# vim /var/lib/pgsql/9.5/data/pg_hba.conf
配置密码
[root@localhost ~]# su postgres
[root@localhost ~]# psql -U postgres
postgres=# alter user postgres with password ‘your_password’;
[root@localhost ~]# vim /usr/lib/firewalld/services/postgres95.xml
1 | <?xml version="1.0" encoding="utf-8"?> |
[root@localhost ~]# firewall-cmd –permanent –add-service=postgres95
如果不成功:
[root@localhost ~]# firewall-cmd –permanent –add-port=5432/tcp
[root@localhost ~]# firewall-cmd –permanent –reload
当然,也可以关闭防火墙。
[错误]
PID file /your_path/nginx.pid not readable (yet?) after start.
这个就是你启动脚本和配置文件的pid不一致导致的
说明:没有特殊说明的话,
Mariadb的版本为:
MariaDB [mydb]> select version();
1 | +------------------------------+ |
MySQL的版本:
mysql> select version();
1 | +------------+ |
数据类型:
ISO SQL:2003 standard
CHAR(N): 0 to 255
VARCHAR(N): 0 to 65535
char(N)一旦分配,就固定了;
char(4)超过后怎么处理?
sql_mode
1 | MariaDB [mydb]> SHOW VARIABLES LIKE 'sql_mode'; |
对于MySQL来说:
ERROR 1074 (42000): Column length too big for column ‘col1’ (max = 21845); use BLOB or TEXT instead
binary类型:
binary –>和char相似,不过区别一个是以二进制的方式进行存储
varbinary –>varchar,这个和varchar相似;
1 | MariaDB [test]> CREATE TABLE t1( col1 binary(4)); |
BLOB类型和TEXT类型:
TINYBLOB
BLOB
MEDIUMBLOB
LONGBLOB
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM类型:
在MariaDB中是非严格类型:
1 | MariaDB [test]> create table enum_a( col1 enum('a','b','c')); |
会显示为空,以及有警告;
而在MySQL中则会直接报错,无法进行插入;
1 | MariaDB [test]> insert into enum_a values('c'); |
SET和ENUM类型的区别在于SET可以插入多个指定的值,而ENUM不能;
日期时间类型:
DATETIME: 8个字节 ‘1000-01-01 00:00:00’ to ‘9999-12-31 23-59:59’
DATE:3个字节 ‘1000-01-01’ to ‘9999-12-31’
TIME:3个字节 ‘-838:59:59’ to ‘838:89:89’
TIMESTAMP ‘1970-01-01 00:00:00’ to mid-year 2037
YEAR: 1901 to 2155(for YEAR(4)) 1970 to 2069 (for YEAR(2))
TIMESTAMP主要应用于自动更新地方;
例如记录最后登录时间:
1 | MariaDB [mydb]> create table time_t1 ( |
会发现这个时间发生了改变;;
1 | use test; |
载入系统时区至mysql timezone中:
x180@x450vc:~$ mysql_tzinfo_to_sql /usr/share/zoneinfo/ | mysql -uroot -p mysql
会发现mysql.time_zone和mysql.time_zone_name会有内容了;
1 | create table tz_t1( |
关于concat的基本使用:
在col1列的所有字段增加一个-号,col2增加一个+号:
1 | SELECT CONCAT(col1,'-'),CONCAT(col2,'+') FROM tb1; |
关于全文索引的问题
MariaDB和MySQL的InnoDB存储引擎都支持全文索引,但是有条件:
1 | +----+-----------------------------------------+ |
(1)在插入数据的时候,如:iam 和 i am,是两个不同的存储,在匹配的时候,是以空格作为分割符进行匹配,如果想搜索am,只会出来 i am,而不会出来iam;
(2)支持中文全文索引,但是支持力度不好:
如上:必须对中文进行精确查询,而且中文个数最好在3个以上;
而且前提是必须有分隔符,没有分隔符将不会查出来;
对于innodb 全文索引来讲,感觉不是那么的明显,另外在mysql 5.6版本,增加了Online DDL,可以在线DDL,这个对于
DBA来讲非常的好,但是目前对于Online DDL不是太了解,另外在并发量比较大的时候,增加fulltext是不允许写的,所以
建议在访问量小的时候进行修改;
另外在alter table add fulltext的时候有一个警告:
17:19:16 alter table full_t1 add fulltext(content) 0 row(s) affected, 1 warning(s): 124 InnoDB rebuilding table to add column FTS_DOC_ID Records: 0 Duplicates: 0 Warnings: 1 0.125 sec
我在网上看到可以:
1 | drop table if exists full_t1; |
但是这样不行,总之,对于Online DDL来讲,一定要在并发量小的情况下进行修改;
关于concat的问题
关于blob和text的问题
TEXT与BLOB的主要差别就是BLOB保存二进制数据,TEXT保存字符数据
关于timezone修改时区的问题
1 |
|
1 | [x180@localhost network-scripts]$ cat ifcfg-eth0 |
1 | [x180@localhost network-scripts]$ cat ifcfg-br0 |
1 | service network restart |
对于KVM中的虚拟主机,默认是不能ping通外网的,需要配置网卡,例如:
1 | [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 |
ping www.taobao.com进行验证;
如何让虚拟机跟随宿主主机开机自启动:
Boot Options –> start virtual machine on host boot up
然后通过vnc这个工具进行远程管理,目前我的方案就是这样;
可能出现的问题:
1 | chkconfig NetworkManager off |
如果执行了上面两步,网卡不会启动br0 和 eth0 ,貌似centos6.7开始剥离network这个管理工具,默认没有开机自启动,而是NetworkManager,如果宿主主机重启后,也是会不启动这两个设备,因为配置文件这种方式只对network有用,所以完整的步骤是加上:
1 | chkconfig network on |
即可;
参考文档:
http://www.360doc.com/content/12/0507/14/9318309_209243400.shtml
1 | # yum -y install nrpe nagios-plugins-all nagios-plugins |
1 | # yum -y install epel-release httpd gcc glibc glibc-common gd gd-devel php mysql mysql-server php-mysql mysql-devel php-snmp php-xml php-gd |
这个时候可以登录web查看localhost可以正常运行了;
1 | # /usr/lib64/nagios/plugins/check_nrpe -H 192.168.122.102 |
1 | # vim /etc/nagios/objects/commands.cfg //添加 |
1 | # cp /etc/nagios/objects/localhost.cfg /etc/nagios/objects/node1.cfg //关于命名,最好对应不同的hostname |
1 | # vim /etc/nagios/nagios.cfg |
有多少主机就这样定义即可;
1 | # vim /etc/nagios/objects/contacts.cfg |
-w 表示warning阀值
-c 表示critical阀值
应该根据实际定义这个值
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true