自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

原创 celery踩坑

启动celery后日志中报错: 1 [2021-04-02 20:31:16,628: INFO/MainProcess] Connected to redis://:**@9xxxx:6379/2 2 [2021-04-02 20:31:16,663: INFO/MainProcess] mingle: searching for neighbors 3 [2021-04-02 20:31:17,742: INFO/MainProcess] mingle: all alone

2021-04-02 20:45:21 526 1

原创 vue--自定义带clearable属性的文本域input组件

今天写页面时遇到一个需求:input框类型是textarea,且支持清除。兴冲冲的直接用以下方式试了一下:<el-input v-model="val" clearable :rows="5" type="textarea"/>发现输入框右侧并不会出现清除符号,查了半天发现clearable属性和在type="textarea"时会失效,于是自己封装了一个支持清空的文本域输入框组件,拿来即用!<template> <div class="textInput

2021-01-27 21:51:26 22266 2

原创 redis学习 -- redis的主从复制

什么是主从复制 为了解决读写压力大的问题,redis支持了主从机制,即将一台Redis服务器的数据,复制到其他的Redis服务器,前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。master以写为主,slaver以读为主。 主从复制的优势 1)读写分离2)容灾切换 复制原理 参考:https://www.cnblogs.com/kismetv/p/9236731.html 如何配置 主从复制的开启是在从节点发起..

2021-01-05 00:24:09 230

原创 redis学习 -- redis的事务

什么是事务 可以一次执行多个命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序串行化执行而不会被其它命令插入,不许加塞。 常用命令 DISCARD: 取消事务,放弃执行事务块内的所有命令EXEC:执行所有事务块内的命令MULTI:标记一个事务块的开始UNWATCH:取消WATCH命令对所有key的监视WATCH key [key ...]:监视一个或多个key,如果在事务执行之前这个/这些key被其它命令改动,那么事务将被打断 事务的三个阶段 1)..

2021-01-03 22:50:23 106

原创 redis学习 -- redis的持久化

什么是持久化 redis的持久化即将内存中的数据写入磁盘中,以保证数据存储的可靠性。redis的持久化方式有两种:RDB(Redis DataBase)和AOF(Append Only File) RDB 1. RDB是什么RDB机制是通过把某个时刻的所有数据生成一个快照来保存,然后在指定的时间间隔内将内存中的数据集快照写入磁盘,它恢复时是将快照文件直接读到内存里。RDB是redis默认使用的持久化方式。2. RDB如何进行持久化有三种方式:1) save主动触发可以使..

2021-01-03 18:11:11 101

原创 redis学习 -- redis配置文件

本文以redis 6.0.5版本的配置文件为例进行讲解。 INCLUDES 可以在redis的配置文件中通过include将其它配置文件引用进来,主要用于一些机器共用一份配置模板,但是部分机器需要个性配置的场景。配置方式:在配置文件中加一行include /path/to/local.conf需要注意的是,redis是以最后一此加载的配置项为准,如果当前配置文件和被引入的配置文件有相同配置项,且该配置项需要以被引入的配置文件的配置为准,则需要注意将include语句放在文件最后(

2021-01-02 20:40:41 235 1

原创 redis学习 -- 什么是redis & redis基础知识

1. 什么是redisredis是一个高性能的k-v分布式内存数据库,基于内存运行,并支持持久化的NoSql数据库,是当前最热门的NoSql数据库之一。2. redis的特点redis支持数据持久化,可以将内存中的数据持久化在磁盘中,重启时可以再次加载进行使用 redis不仅支持建单的k-v类型的数据,同时还提供list、set、zset、hash等数据结构的存储 redis支持数据的备份,即master-slave模式的数据备份3. redis用途内存存储和持久化:redis支持异步

2020-12-16 00:30:06 246

原创 redis学习 -- 分布式数据库中的CAP原理

CAP是分布式系统的3个特性:C:Consistency(强一致性),写操作之后的读操作,必须返回该值。A:Availability(可用性),用户发出请求,服务器一定要给出响应。P:Partition tolerance(分区容错性),大多数分布式系统都分布在多个子网络,每个子网络就叫做一个区(partition),分区容错的意思是,区间通信可能失败。一个分布式系统不可能同时很好地满足一致性、可用性和分区容错性这三个需求,最多只能同时较好地满足两个:CA:单点集群,满足一致性、可用性的

2020-12-14 00:26:31 453

原创 redis学习 -- 非关系型数据库分类

1. KV键值场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等数据模型:一般用hash table实现优点:查询速度快缺点:数据无结构化代表:Oracle BDB、Redis2. 文档型数据库(bson格式比较多)场景:web应用数据模型:k-v对应的键值对,value是结构化数据优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构缺点:查询性能不高,缺乏统一的查询语法代表:CouchDB、MongoDB(基于分布

2020-12-13 23:56:58 151

原创 celery定时任务不生效原因

最近有一个新的任务需要在后台定时进行,于是使用了celery的定时器来实现,但是加了任务后,到设置的时间点时任务就是不会被触发执行。定位了很多地方,最后发现是时间设置有问题。需求:早上7点~凌晨12点每30分钟执行一次,于是我将任务定义成了这样sender.add_periodic_task( crontab(minute='0/30', hour="7-24"), sync_module_data_periodic, name="sync module data",

2020-11-07 21:25:06 2762 5

转载 element-select当下拉框数据过多使用懒加载

分页原理,设置高度,当超过一个高度再加载一页数据,以此类推。<template> <el-select v-model="value" placeholder="请选择" filterable multiple v-el-select-loadmore="loadmore" &g...

2020-03-04 20:23:26 3101 2

原创 从vue引出的前端基础概念梳理--JavaScript、ES6、node、npm、webpack、CommonJS

本文简单对前端的基础知识以及它们之间的关系进行整理,让前端入门人员可以对前端知识有初步的认识,在后面的学习中可以更好理解和上手。

2019-12-22 20:52:07 847

原创 python3 多线程之threading

记录一下python3中使用threading实现多线程,并获取每个线程调用的方法的返回值的方法:import threadingimport queueimport timedef test(i): print('start---' + str(i)) time.sleep(i) print('end---' + str(i)) return 'th...

2019-08-07 23:42:38 218

原创 vue父组件传递给子组件的对象的部分元素在子组件中变为undefined

今天遇到个偶现的bug:父组件传递了一个对象给子组件,子组件中使用这个对象中的部分元素变为undefined。问题分析:父组件的这个对象(task)是通过computed侦听http接口返回的数据后被赋值的(这个http接口5s被调用一次),子组件中变为undefined的元素(stageEnv)是在父组件mounted方法中动态赋值的(此前这个对象中未定义此元素):mounted(...

2019-06-25 22:23:31 3712

原创 Ansible使用动态inventory

Ansible不仅可以通过默认的hosts文件获取主机清单,也可以通过外部脚本文件动态管理和获取主机信息。存放主机信息的外部脚本文件可以使用python、PHP等语言进行编写,其运行结果返回的必须为JSON串,Ansible会对JSON格式的字符串进行解析,并最终将其转化为Ansible可用的Inventory文件格式。所以,所谓的动态inventory文件脚本开发,其实就是编写脚本根据具体环境将...

2018-04-24 21:19:11 2948

原创 python之网络编程

用python写了一个简单的socket编程demo,记录一下。主要实现在客户端发送linux指令,在服务器端执行后返回执行结果,代码比较简单,所以就不多加赘述了。服务端:#!/usr/bin/python# -*- coding: UTF-8 -*-import socket, osHOST = ''port = 8888buf_size = 1024server_s = so...

2018-04-17 15:49:26 222

转载 python print 和 sys.stdout.write()

python: v-3.6.3当我们使用print(obj)在console上打印对象的时候,实质上调用的是sys.stdout.write(obj+'\n'),print在打印时会自动加个换行符,以下两行等价:sys.stdout.write('hello'+'\n')print 'hello'从控制台重定向到文件原始的 sys.stdout 指向控制台,如果把文件的对象的引用赋给 sys.s...

2018-04-13 17:41:08 44356

原创 python多线程锁机制

在多线程编程中常用到的一个概念就是锁,它用于将线程需要独占的资源进行加锁,使用后再进行释放,防止死锁发生。此处给出一个不加锁的多线程例子(实现整数n在每个线程内加1并打印):#!/usr/bin/python# -*- coding: UTF-8 -*-import threadingimport timeclass myThread(threading.Thread): d...

2018-04-11 22:04:49 843

转载 python中__name__的意义以及作用

首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行:test.pydef HaveFun(): if __name__ == '__main__': print('I am in my domain,my name is %s' % __name__) else: print('Someone else calls m...

2018-04-06 16:15:02 2285

原创 Python读取txt文件后去除每行后面的\n

今天学习subprocess模块时使用subprocess.Popen()函数将执行后的指令保存在txt文本(utf-8编码)中,然后再读取出来,发现换行都变成了'\n',降低了可读性,现在将处理的代码记录一下备忘。file = open('data.txt', 'w+') # 赋予读写权限subprocess.Popen(["ipconfig","-all"], stdout = fil...

2018-04-03 10:20:23 11945

转载 虚继承的概念

C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class 派生类名:virtual 继承方式  基类名virtual是关键字,声明该基类为派生类的虚

2017-09-01 10:44:47 240

转载 "undefined reference to" 问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1.  链接时缺失了相关目标文件(.o)

2017-08-31 21:36:20 4059

原创 数据库中的锁机制和封锁协议

今天整理一下数据库中的锁机制和封锁协议,锁主要用于解决事务并发控制中产生的一些问题,在此之前我先列举一些相关的基本概念。事务:用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。(事务的四个特性:原子性,一致性,隔离性,持续性)并发控制:本文以单处理器系统为主,单处理器中多个用户并发地存取数据库就会产生多个事务同时存取同一数据的情况,若对并发操作不加控

2017-07-05 20:18:47 9412 3

原创 select、poll和epoll

select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内

2017-06-20 12:13:53 373

转载 c++空类实例大小不是0原因

初学者在学习面向对象的程序设计语言时,或多或少的都些疑问,我们写的代码与最终生编译成的代码却 大相径庭,我们并不知道编译器在后台做了什么工作.这些都是由于我们仅停留在语言层的原因,所谓语言层就是教会我们一些基本的语法法则,但不会告诉我们为什么这么做?今天和大家谈的一点感悟就是我在学习编程过程中的一点经验,是编译器这方面的一个具体功能. 首先:我们要知道什么是类的实例化,所谓类的实例化就是在内存中分

2017-06-19 17:21:09 278

转载 系统调用和库函数及API的区别

转载原文:http://blog.csdn.net/gogokongyin/article/details/51303624           在写程序的过程中,像MFC,VC++这些编程,都会涉及到函数的调用,有库函数也有系统函数,下面看一看它们的区别!!           系统调用(system call)和库函数调用(Library function call)的区别?

2017-06-19 09:45:02 7936

转载 孤儿进程与僵尸进程[总结]

1、前言  看到大牛前辈 这篇文章,受益颇深,特意转载过来跟大家分享!2、基本概念  我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。  孤儿进程:一

2017-06-14 21:28:47 263

转载 Linux写时复制技术(copy-on-write)

COW技术初窥:      在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。      那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢?      在fork之后exec之前两个进程用的是相同

2017-06-14 20:08:26 492

原创 VMware中安装gcc和升级gdb的方法

今天换了一台电脑,没装ubuntu,所以先装了个VMware用一段时间。VMware默认是没有安装gcc的,且默认的gdb版本比较低,不能和gcc一起debug,所以需要自己动手安装和升级,我把这个过程记录下来,跟大家分享一下。1、安装gcc未安装之前,用gcc编译会提示error trying to exec 'cc1plus': execvp: No such file or dire

2017-06-13 20:07:35 2509

原创 数组指针与指针数组

指针数组和数组指针的概念非常容易混淆,今天在这里整理一下。先看一下二者的定义:数组指针:int (*p)[4];   //p是指向数组的指针,本身是一个指针。指针数组:int *q[4];     //q是一个包含4个元素的数组,每个元素是一个int型的指针。接下来通过代码感受一下:#include using namespace std;int main(){

2017-06-13 17:05:06 290

原创 类内定义的成员函数是内联函数

之前看书的时候没有注意到这点,今天再翻primer发现了这句话,感觉好神奇,特意来做个笔记!在类内定义的成员函数默认为inline,不论前面是否加了inline,当然,是否内联还是取决于编译器啦~而在类外定义的成员函数就不是内联函数。

2017-06-13 08:43:58 11124 2

转载 Bash基本命令整理

BASH 的基本语法·          最简单的例子 —— Hello World!·          关于输入、输出和错误输出·          BASH 中对变量的规定(与 C 语言的异同)·          BASH 中的基本流程控制语法·          函数的使用2.1     最简单的例子 —— Hello World!几乎所有的讲解编程的书给读者

2017-06-09 20:56:32 7472

转载 linux网络协议栈内核分析

1. Linux 网络路径1.1 发送端1.1.1 应用层(1) Socket应用层的各种网络应用程序基本上都是通过 Linux Socket 编程接口来和内核空间的网络协议栈通信的。Linux Socket 是从 BSD Socket 发展而来的,它是 Linux 操作系统的重要组成部分之一,它是网络应用程序的基础。从层次上来说,它位于应用层,是操作系统为应用程序员提供的 API,通过它,应用

2017-06-08 10:45:38 724

转载 C++ 预处理、编译、汇编、链接

一个C++程序一般需要经过以下几个步骤才能成为可执行程序:那么,在以上的每一步中,编译器到底做了哪些工作呢?一、编译器预处理C++编译器自带预处理器,在程序编译之前,由预处理器对C++源程序完成预处理工作。预处理主要将源程序中的宏定义指令、条件编译指令、头文件包含指令以及特殊符号完成相应的替换工作。预处理指令#include用于包含头文件,有两种形式:#include <xxx.h>,#in

2017-06-06 17:05:21 1525 2

转载 Linux中的文件描述符与打开文件之间的关系

转载请说明出处:http://blog.csdn.net/cywosp/article/details/389652391. 概述    在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file descriptor)是内核为了高效管理已被打开的文件所创建的索引,其是一个非负整数(通常是小整数),用于指代被打开的文件,所有执行I/O操作的系统

2017-06-05 11:31:15 279

转载 c/c++中int main(int argc,char *argv[])的具体含义

int main(int argc,char * argv[])argv为指针的指针argc为整数 char **argv or: char *argv[] or: char argv[][]main()括号内是固定的写法。下面给出一个例子来理解这两个参数的用法:假设程序的名称为prog,当只输入prog,则由操作系统传来的参数为:argc=1,表示只有一程序名称。argc只有一个元

2017-06-05 09:52:26 390

转载 TCP的那些事

TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一下RFC793以及后面N多的RFC)。另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的

2017-06-01 16:13:46 660

转载 用户级线程和内核级线程的区别

转载于http://col1.blog.163.com/blog/static/1909775192012719114033352/1 .内核级线程:切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。 2. 用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消

2017-06-01 09:49:10 5820 1

转载 阻塞和非阻塞系统调用

阻塞 阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。有人也许会把阻塞调用和同步调用等同起来,实际上他是不同的。对于同步调用来说,很多时候当前线程还是激活的,只是从逻辑上当前函数没有返回而已。例如,我们在CSocket中调用Receive函数,如果缓冲区中没有数据,这个函数就会一直等待,直到有数据才返回。而此时,当前线程还会继续处理各种各样的消息。如果主窗口和调用函

2017-05-31 20:36:19 6396

转载 死锁、活锁&饥饿

死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象:死锁。”虽然进程在运行过程中,可能发生死锁,但死锁的发生也必须具

2017-05-24 21:09:35 428

MIMO-OFDM+WIRELESS+COMMUNICATIONS+WITH+MATLAB

MIMO-OFDM+WIRELESS+COMMUNICATIONS+WITH+MATLAB英文原版书籍

2018-03-08

领航致远-李老师CMS源码

领航致远-李老师CMS源码,包含所有课程CMS源码,适合java web开发学习新手

2018-03-08

matlab_基于QPSK的ML检测算法

本人自己编写的基于QPSK的ML算法,实现了4x4的MIMO功能

2015-07-06

空空如也

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

TA关注的人

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