自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(199)
  • 收藏
  • 关注

原创 Linux:安装nginx

1.安装依赖包//一键安装这四个依赖yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel2.下载并解压安装包//创建一个文件夹cd /usr/localmkdir nginxcd nginx//下载解压tar包wget http://nginx.org/download/nginx-1.13.7.tar.gztar -xvf nginx-1.13.7.tar.gz3.安装nginx//进入nginx

2021-08-13 19:51:43 263

原创 Docker更换国内镜像源

方法一:给Docker守护进程配置加速器通过配置文件启动Docker,修改/etc/docker/daemon.json 文件并添加上 registry-mirrors 键值。vim /etc/docker/daemon.json{"registry-mirrors": ["http://hub-mirror.c.163.com"]}修改保存后,重启 Docker 以使配置生效。service docker restart方法二:如果安装docker软件,可以在Docker Engin

2021-08-04 10:44:06 1137

原创 Linux:Redis安全(设置密码验证)

可以通过Redis的配置文件设置密码验证,如果设置了密码验证的话,客户端连接到Redis服务的时候就需要输入密码,这样可以让Redis服务更加安全。使用命令config get requirepass可以查看是否设置了密码验证127.0.0.1:6379> config get requirepass1) "requirepass"2) ""发现密码为空,也就是不需要密码就直接可以连接到redis服务。设置密码,假设设置成hello127.0.0.1:6379> config s

2021-05-27 15:40:54 700

原创 Linux:Redis数据备份和恢复

Redis数据备份和恢复1.备份可以使用SAVE或者BGSAVE命令SAVE用于创建数据库的备份。(阻塞主进程)BGSAVE用于在后台创建数据库的备份。(fock了一个专门save的子进程,不会影响主进程)127.0.0.1:6379> SAVE OK127.0.0.1:6379> BGSAVEBackground saving started2.数据恢复想要恢复数据的话,需要将备份文件(dump.rdb)移动到redis安装目录并启动服务即可。获取redis目录可以使用

2021-05-24 16:22:38 978

原创 Linux:Redis服务器相关命令

Redis 服务器命令主要是用于管理 redis 服务。1.BGSAVE(保存数据到磁盘)Redis Bgsave 命令用于在后台异步保存当前数据库的数据到磁盘。BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。127.0.0.1:6379> bgsaveBackground saving started2.CLIENT LIST(查看所有客户端连接)R

2021-05-13 15:35:59 179

原创 Linux:与redis连接服务有关的一些命令

Redis 连接命令主要是用于连接 redis 服务。1.PINGRedis Ping 命令使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG 。127.0.0.1:6379> PING # 连接正常PONG127.0.0.1:6379> PING # 连接异常Could not connect to Redis at 127.0.0.1:6379: Connection refused2.QUITRedis Quit 命令用

2021-03-18 15:37:41 920

原创 Linux:Redis事务

Redis事务Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到执行会经历以下三个阶段:开始事务命令入队执行事务单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。我们可

2021-03-11 17:37:37 102

原创 Linux:Redis发布订阅

Redis发布订阅Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。下图表示client1,client2和client5,都订阅了channel1这个频道下图表示给channel1这个频道发送消息之后,channel1会把信息发布给订阅它的client1,client2和client5操作指令1.SUBSCRIBE(创建频道)Redis Subscribe 命令用于订阅给定的一个或多个频

2021-03-09 15:14:53 419 1

原创 ffmpeg:获取音频采样率

使用ffmpeg获取音频采样率//一些头文件#include <libavcodec/avcodec.h>#include <libavformat/avformat.h>#include <libswscale/swscale.h>#include <libavutil/imgutils.h>#include <libavutil/time.h>#include <libswresample/swresample.h>

2021-03-03 11:31:44 1902

原创 ffmpeg:通过视频PTS获取当前帧所在的时间

FFmpeg通过PTS获取当前帧所在的时间//输入对应流,获取帧AVStream *stream=pFormatCtx->streams[packet.stream_index];//解码avcodec_decode_video2(pCodecCtx,pFrame, &got_frame, &packet);//获取秒int second= pFrame->pts * av_q2d(stream->time_base);...

2021-03-01 18:26:21 2273

原创 Linux:git报错 - git-lfs filter-process: git-lfs: command not found

在pull远程主分支代码时,出现了如下错误:git-lfs filter-process: git-lfs: command not foundfatal: The remote end hung up unexpectedly解决方案brew install git-lfs

2021-02-22 15:57:41 10830 2

原创 Linux:Redis列表(list)命令

Redis列表命令1.LPUSH/LPOP(左边插入和删除)Redis Lpush 命令将一个或多个值插入到列表头部。 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。 当 key 存在但不是列表类型时,返回一个错误。Redis Lpop 命令用于移除并返回列表的第一个元素。127.0.0.1:6379> lpush ret 123(integer) 1127.0.0.1:6379> lpush ret 456(integer) 2127.0.0.1:6379&

2021-02-20 14:59:13 1016

原创 Linux:Redis哈希(hash)命令

Redis哈希命令1.HSET/HMSET/HGET/HMGET/HGETALL/HDELRedis Hset 命令用于为哈希表中的字段赋值 。Redis Hmset 命令用于同时将多个 field-value (字段-值)对设置到哈希表中。Redis Hget 命令用于返回哈希表中指定字段的值。Redis Hmget 命令用于返回哈希表中,一个或多个给定字段的值。Redis Hgetall 命令用于返回哈希表中,所有的字段和值。Redis Hdel 命令用于删除哈希表 key 中的一个或多个

2021-02-13 11:45:32 1238 1

原创 Linux:Redis字符串(string)命令

Redis字符串命令1.SET/GET/GETSETset设置指定key的值get获取指定key的值getset设置新值并返回旧值127.0.0.1:6379> set ret 123OK127.0.0.1:6379> get ret“123"127.0.0.1:6379> getset ret 456"123"127.0.0.1:6379> get ret"456"2.GETRANGERedis Getrange 命令用于获取存储在指定 key 中字符

2021-02-10 14:32:51 277

原创 iTerm的右上角惊现一只眼睛!谁在监视我!!

哈哈哈哈笑死我了!!!用iTerm的时候发现右上角有个小眼睛来给大家看一看哈哈哈哈!看到的一瞬间以为有人在监视我工作!我这么内心单纯的小孩子第一时间就是这么想的哈哈哈哈!这年头还有人监视我工作的一举一动,这还得了后来查了下也不知道是什么原因然后看到网上的小伙伴也疑惑哈哈哈哈抱团疑惑哈哈哈哈!!我正在看着你看着你目不转睛哈哈哈哈哈!!好吧!到最后我也不知道是啥!小丑竟是我自己!不过我知道怎么让你看不到这个眼睛!按下command+Alt+A就可以了!好,就酱!我投降了

2021-02-09 15:54:46 696 2

原创 Linux:Redis键(key)的操作

Redis键的操作(key)Redis 键命令用于管理 redis 的键语法:COMMAND KEY_NAME1.DEL(删除)Redis DEL 命令用于删除已存在的键。不存在的 key 会被忽略。返回值是被删除key的数量。127.0.0.1:6379> DEL ret2.DUMP(序列化)Redis DUMP 命令用于序列化给定 key ,并返回被序列化的值。key存在返回序列化之后的值,key不存在返回nil。127.0.0.1:6379> set ret "hello

2021-01-11 14:34:45 1474

原创 Python:运行程序报错Empty suite

其实特别简单,这是因为默认情况下,PyCharm将检查以test开头的文件,它们是unittest.TestCase的子类,但是你可以控制模式和子类选项。根据您的测试文件名更改模式,它接受Python正则表达式。解决方法就是:更改程序名字,不要以test开头比如test_list.py你可以改成list_test.py...

2021-01-04 16:41:41 2548

原创 Linux:Redis 有序集合(zset)命令

Redis 有序集合命令1.ZADD(添加元素)Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中。如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上。分数值可以是整数值或双精度浮点数。127.0.0.1:6379> zadd key 1 one(integer) 1127.0.0.1:6379> zadd key 2 two(integer) 1127.0.0.1:6379> zad

2020-12-29 11:59:30 836

原创 Linux:Redis集合(set)命令

Redis集合(set)命令1.SADDRedis Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合。127.0.0.1:6379> sadd key 123(integer) 1127.0.0.1:6379> sadd key 456(integer) 1127.0.0.1:6379> sadd key 789(integer) 1127.0.0.1:6379> s

2020-12-25 14:54:03 1046

原创 Linux:Redis的基本数据类型

字符串(SET,GET)string 是 redis 最基本的类型,一个 key 对应一个 value,string 类型的值最大能存储 512MB127.0.0.1:6379> SET ret "123" # 键为ret,对应的值为"123"。OK127.0.0.1:6379> GET ret"123"哈希(HMSET,HGET)Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象127.0.0.1:637

2020-12-22 18:10:26 161

原创 Linux:安装Redis

1.下载并安装下载地址:http://redis.io/download,下载最新版本(当前版本为6.0.5)$ wget http://download.redis.io/releases/redis-6.0.5.tar.gz$ tar xzf redis-6.0.5.tar.gz$ cd redis-6.0.5$ make2.make完后出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:下面启动red

2020-12-18 11:17:15 126

原创 Linux:安装Redis、安装过程可能出现的问题

安装通过wget方式直接在linux上下载Rediswget http://download.redis.io/releases/redis-2.6.17.tar.gz解压下载的redis-2.6.17.tar.gz 文件tar xzf redis-2.6.17.tar.gz进入解压后的文件夹cd redis-2.6.17编译安装make启动通过执行src文件夹下的redis-server,可以启动redis服务:$ src/redis-server通

2020-12-16 11:34:10 283

原创 Python:正则表达式的使用 / re模块

正则表达式正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。所以我们判断一个字符串是否是合法的Email的方法是创建一个匹配Email的正则表达式用该正则表达式去匹配用户的输入来判断是否合法在正则表达式中,如果直接给出字符,就是精确匹配。\d可以匹配一个数字\w可以匹配一个字母或数字所以‘00\d’可以匹配’007’,但无法匹配’00A’‘\d\d\d’可以

2020-12-14 20:52:31 233

原创 Python:多进程和多线程编程

多进程Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程os.fork():创建子进程import osprint('process is start...', os.getpid())child = os.fork()if child == 0: print('I am child process (%s) and my parent is %s.' % (os.getpid(), os.getppid()))else:

2020-12-08 19:14:59 129

原创 Python:IO编程(读写文件)、序列化和反序列化

IO编程同步和异步的区别就在于是否等待IO执行的结果。好比你去麦当劳点餐,你说“来个汉堡”,服务员告诉你,对不起,汉堡要现做,需要等5分钟,于是你站在收银台前面等了5分钟,拿到汉堡再去逛商场,这是同步IO。你说“来个汉堡”,服务员告诉你,汉堡需要等5分钟,你可以先去逛商场,等做好了,我们再通知你,这样你可以立刻去干别的事情(逛商场),这是异步IO。使用异步IO来编写程序性能会远远高于同步IO,但是异步IO的缺点是编程模型复杂。想想看,你得知道什么时候通知你“汉堡做好了”,而通知你的方法也各不相同。如

2020-11-30 11:21:04 227

原创 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused的解决办法!亲测有用!

这个问题我真的头都大了,brew一直不行,装个ffmpeg都要了我的老命!找了超多资料,凎!!!后来发现换个国内镜像就成了【掀桌子!】(╯-_-)╯~ ╩╩一句命令就可以搞定了!国内的镜像地址:/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"我选的是1号镜像!!!已经装好了!!!好了大家快冲冲冲!!!...

2020-11-23 15:21:35 669

原创 Python:计算1s可以跑多少次while循环 / 计算时间差

计算1s可以跑多少次while循环import datetimestartTick = datetime.datetime.now()i = 0while 1: i = i + 1 endTick = datetime.datetime.now() if (endTick - startTick).seconds >= 1: breakprint(i)运行结果:计算两个时间的时间差import timeimport datetimesta

2020-11-19 17:01:18 3319

原创 Python:定制类、枚举类、元类

定制类:①__str__:创建实例打印的时候,若打印该实例可以打印一个好看的字符串class Student(object): def __init__(self, name): self._name = name def __str__(self): return 'Student Object (name: %s)' % self._name __repr__ = __str__ # __str__()返回用户看到的字符串,而__repr

2020-11-16 10:49:41 221

原创 Python:@property装饰器的使用

@property:(把方法变成属性调用)Python内置的@property装饰器就是负责把一个方法变成属性调用的Python允许我们在程序中手动设置异常,使用 raise 语句即可把一个getter方法变成属性,只需要加上@property就可以了,此时,@property本身又创建了另一个装饰器@score.setter,负责把一个setter方法变成属性赋值,于是,我们就拥有一个可控的属性操作# 例1:学生分数设置和获取class Student(object): @proper

2020-10-27 17:44:04 214

原创 Python:面向对象编程(类、类属性)

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。类的创建:class Student(object): # 类名一般大写 def __init__(self, name, score): # 注意:特殊方法“__init__”前后分别有两个下划线!!! self.name = name self.score = score def pri

2020-10-23 15:11:00 219

原创 Python:函数式编程(map、reduce、filter、sorted、lambda、装饰器、偏函数)

函数式编程允许把函数本身作为参数传入另一个函数,还允许返回一个函数对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算绝对值的函数map函数:(作用于每一个元素,参数:函数,序列)map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回a = map(abs, [-10, -20, 30, -40])print(list(a))Iterator是惰性序列,因此通过list()函数让它

2020-09-30 18:33:11 171

原创 Python:创建生成器的两种方法

生成器:(一边循环一边计算的机制)生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了第一种创建生成器的方法g = (x * x for x in range(10))for i in g: print(i)第二种创建生成器的方法# 斐波那契正常写法def fib(num): n, a, b = 0, 0, 1 while n < num: print

2020-09-24 14:20:50 931

原创 nginx:设置目录浏览

server { listen 17200; server_name localhost; //定位,把特殊的路径或者文件再次定位 location / { root /data; autoindex on; autoinde...

2020-09-10 11:17:05 263

原创 Python:函数可变参数、关键字参数

可变参数:加*def test(*numbers): sum = 0 for i in numbers: sum = sum + i return sumprint(test(4, 5))print(test(4, 5, 5))l4 = [4, 5, 6]print(test(*l4))关键字参数:加**kw关键字参数在函数内部自动组装为一个dictdef test(name, age, **kw): print('name:', name

2020-09-01 19:24:53 159

原创 测试:bug的生命周期、bug的等级、如何描述一个bug

一、Bug 的生命周期new - open - fixing - verify - close发现bug–>提交bug–>指派bug–>研发确认bug–>研发去修复bug–>回归验证bug–>是否通过验证–>关闭bug● New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。● Open:确认是Bug,并且认为需要进行修改,指派给...

2020-08-20 16:54:09 1525

原创 Ubuntu系统安装pip3

我们会以为安装pip3使用的命令是apt-get install pip3这样的话会报下方错误使用下面的这个命令就对了~apt-get install python3-pip

2020-08-06 18:58:31 386

原创 测试:软件测试的基本流程、软件开发生命周期

软件测试的基本流程1、需求分析、需求评审需求分析和评审就是分析客户的需求可不可行,需要怎么进行测试。2、编写测试计划编写测试计划通俗一点讲就是什么人在什么时间做什么事,最后产出什么东西。那也就是测试人员要测试哪些模块、在什么期限内,提交哪些文档。3、编写测试用例、用例评审测试用例就是指导测试的文档,比如我们要测试商城登录、买东西等功能,通过测试方法和策略设计测试用例。评审就是评价审查...

2020-08-03 11:47:28 841 2

原创 Python:numpy和list查询元素个数、定位元素

list查询个数:调用list.count(obj)函数,返回obj在list中的个数。输入:list_a = [2 for x in range(5)]print(list_a)a_count = list_a.count(2)print(a_count)1234输出:[2, 2, 2, 2, 2]512定位元素:调用list.index(obj)函数,返...

2020-07-30 09:57:02 4067

原创 Python:将GIF图片转换成png图片帧

python里有处理图像的库PIL我们可以利用PIL库中的函数将gif图按帧截取出来from PIL import Image # 导入PIL的Image包import osgifFileName = "./test.gif" # 把gif图赋值给gifFileNameim = Image.open(gifFileName) # 使用Image的open函数打开test.gif图像...

2020-07-27 11:51:18 1571

原创 Python:让python程序运行在后台

使用SSH连接服务器后,使用如下命令即可:nohup python xxxxx.py &nohup python3 xxxxx.py & #使用python3运行程序使用完nohup后,千万不能直接关闭SSH,要使用exit退出shell。再用外网访问一下flask,发现没有问题了!可以后台启动了!...

2020-07-24 15:25:59 1388

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除