docker的安装与使用
docker的安装与使用docker安装-ubuntu1234# 自动下载安装docker命令sudo wget -qO- https://get.docker.com | sh # 给与docker权限,不需sudo也可以执行; 自己测试输入命令后重启系统才生效sudo usermod -aG docker kcyln
docker命令1234567891011121314151617181920212223docker info # 查看docker信息docker pull # 拉取镜像docker build # 创建镜像docker run # 运行容器docker images # 查看镜像docker ps # 查看运行中的容器docker ps -a # 查看所有容器docker stop sdai3nf # 停止容器docker rm ef87fse8 cf045930cd83 # 删除停止的容器,可以同时删除多个容器docker rmi fd8efke # 删除镜像docker cp # 在宿主机和容器之间拷贝文件docker commit ...
Redis入门
入门
redis 官网 https://redis.io/download
中文网站 redis.cn www.redis.com.cn
Redis 命令文档 http://doc.redisfans.com/
github https://github.com/redis/redis
在线测试 https://try.redis.io
Redis(Remote Dictionary Server):基于内存的 KV 键值对数据库
优势、注意事项、应用
性能极高,读写速度可达 110000 次/秒,81000 次/秒
数据类型丰富,支持 list,set,zset,hash 等数据结构的存储
内存存储和持久化(RDB 和 AOF),可将内存中的数据异步写到硬盘,同时不影响继续服务;支持主从模式的数据备份。
分布式缓存,为 MySQL 数据库缓解压力
高可用架构搭配:单机、主从、哨兵、集群
缓存穿透、击穿、雪崩
分布式锁
队列
排行榜 + 点赞
数据类型
string
list
hash
set
zset
bitmap
bitfield
geo ...
深拷贝与浅拷贝
直接赋值其实就是对象的引用(别名)。
a=[1,2,3]; b=aa与b享有相同的内存空间,指向同一个内存地址,
使用a.append()添加元素后,b也会随之改变。
graph LR
a-->A[1,2,3]
b-->A[1,2,3]
浅拷贝(copy)拷贝父对象,不会拷贝对象的内部的子对象。
a.copy()与copy.copy()结果一致;元组没有a.copy()方法;总之,当拷贝内容为不可变对象时,内存地址相同;当拷贝内容为可变对象时,内存地址不同。
a=[1,2]; b=a.copy() a与b内存空间不同,a添加元素,不会改变b的值
a=[1,2]; b=[3,4]; c=(a,b); d=copy.copy(c) c与d内存空间相同,a添加元素,c与d的值都会改变
a=[1,2]; b=[3,4]; c=[a,b]; d=c.copy()copy对列表和元组的处理结果不同,c与d内存空间不同,c添加元素不会改变d的值, 但是如果是a添加元素,c与d的值都会改变
深拷贝(deepcopy)copy 模块的 d ...
常用安装
ubuntu 18.04 下安装 MySQL查看系统是否安装mysql1sudo netstat -tap | grep mysql
安装1sudo apt-get install mysql-server mysql-client
配置
登录mysql
开始安装的不知道mysql的登录密码,可以使用下列命令查看,然后登录1sudo cat /etc/mysql/debian.cnf # 使用client下的user和password登录
或者也可以直接输入 sudo mysql 登录
修改root用户密码
1ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';
添加新用户
12GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' ;FLUSH P ...
python3下读取redis返回bytes类型的问题
问题
使用python连接redis,读取数据时返回的是bytes类型
解决方法
首先查看连接方法StrictRedis的构造方法
1234567891011def __init__(self, host='localhost', port=6379, db=0, password=None, socket_timeout=None, socket_connect_timeout=None, socket_keepalive=None, socket_keepalive_options=None, connection_pool=None, unix_socket_path=None, encoding='utf-8', encoding_errors='strict', charset=None, errors=None, decode_responses= ...
docker-compose启动后其中的web容器立刻停止
背景
使用docker-compose+django+uwsgi+nginx部署网站时,刚一启动web容器就停止了,也导致nginx启动失败。
原因
uwsgi.ini配置中添加了 daemonize=uwsgi.log 导致uwsgi程序日志输出到指定的文件, 进程会在后台运行,docker前台没有程序运行,所以停止了。
Docker容器同时只能管理一个进程,如果这个进程退出那么容器也就退出了,但这不表示容器只能运行一个进程(其他进程可在后台运行),但是要使容器不退出必须有一个前台执行的进程。
解决方法
将daemonize=uwsgi.log注释或者删除即可。
pip更换国内源
介绍123456781、pip直接安装时速度比较慢,所以使用国内源,可以加速下载模块的速度2、常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里:https://mirrors.aliyun.com/pypi/simple -- 清华:https://pypi.tuna.tsinghua.edu.cn/simple -- 中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple3、临时使用以下命令加速安装: -- pip install -i https://pypi.douban.com/simple 模块名
永久配置安装源命令行一键设置1pip config set global.index-url https://pypi.douban.com/simple
手动设置WindowsLinuxMacOS12345资源管理器地址栏输入 %APPDATA% 然后回车;可以直接进入 C:\Users\用户名\AppData\Roaming 目录;在此目录下新建 pip 文件夹;在pip文件夹中新建 ...
Git忽略规则(.gitignore配置)不生效原因和解决
问题:
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
回答:
因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。
解决方法:
git清除本地缓存(改变成未track状态),然后再提交(此方法会删除所有git提交记录,不推荐)
1234git rm -r --cached .git add .git commit -m 'update .gitignore'git push -u origin master
在每个clone下来的仓库中手动设置不要检查特定文件的更改情况。
1git update-index --assume-unchanged PATH # PATH处输入要忽略的文件
在使用.gitignore文件 ...
Linux常用命令
基础命令
ls list 查看当前文件夹下的内容
-a 显示指定目录下所有子目录与文件,包括隐藏文件-l 以列表方式显示文件的详细信息-h 配合 -l 以人性化的方式显示文件大小
pwd print wrok directory 查看当前所在文件夹
cd [目录名] change directory 切换文件夹
cd 切换到当前用户的主目录(/home/用户目录)cd ~ 切换到当前用户的主目录(/home/用户目录)cd . 保持在当前目录不变cd .. 切换到上级目录cd - 可以在最近两次工作目录之间来回切换
创建和删除操作
touch [文件名] touch 如果文件不存在,新建文件
创建文件或修改文件时间
如果文件 不存在,可以创建一个空白文件
如果文件 已经存在,可以修改文件的末次修改日期
mkdir [目录名] make directory 创建目录
-p可以递归创建目录rm [文件名] remove 删除指定的文件名 -f 强制删除,忽略不存在的文件,无需提示 ...
matplotlib设置中文显示
matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字。
查看Linux/Mac下面支持的字体
12fc-list 查看支持的字体fc-list :lang=zh 查看支持的中文(冒号前面有空格)
修改matplotlib字体
通过matplotlib.rc修改(Windows/Linux),不过测试并没有成功
123import matplotlibfont = {"family": "Microsoft Yahei"}matplotlib.rc("font", **font)
通过matplotlib下的font_manager修改(Windows/Linux/Mac),测试成功
1234567891011import randomfrom matplotlib import font_manager, pyplot# fname里面的内容是通过fc-list :lang=zh命令查询到的系统支持的中文字体m ...









