自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MacBook Pro M1 使用UTM安装ubuntu系统虚拟机

一,准备工作先在官网下载UTM和ubuntu镜像官网安装说明地址:https://mac.getutm.app/gallery/ubuntu-20-04UTM选择UTM.dmgUbuntu我选择了20.04.3LTS二,开始安装双击下载好的UTM.dmg 安装即可打开UTM点击“+”号创建虚拟机(我这里已经创建过了所以页面可能会不同)基本信息: 给你的虚拟机起个名字,下面还可以选择展示的图标随便选一个就行系统:架构: 电脑是64的就选6

2021-10-12 17:25:30 11872 16

原创 MYSQL--解决表锁问题

如果访问一个表长时间打不开,看不到数据很有可能出现了表锁,如下前三步即可解决:**查询是否锁表show OPEN TABLES where In_use > 0;查看在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;杀死进程id(就是上面命令的trx_mysql_thread_id列)kill 线程ID补充查看等待锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOC.

2020-12-05 22:04:30 208

原创 MongoDB地标索引

一,介绍MongoDB提供两种地图索引2d索引:通过二维平面记录点坐标,支持在平面几何中计算距离2dsphere索引:支持在球面上进行距离的计算,并且支持mongodb的所有地理空间查询方法(mongodb版本高于2.6官方推荐用此索引)查询范围类型点:point线:Line多边形:polygon,box(矩形)圆形:center地理空间查询类型“$geoIntersects”操作符找出与查询位置相交的文档“$within”查询完全包含在某个区域的文档“

2020-08-10 21:04:14 293

原创 rabbitMQ五种消息模型

rabbitMQ提供了6种消息模型,但是第六种其实是RPC(远程过程调用),并不是MQ,所以是5种模式。其中5种消息模型分为两类:第一种和第二种是点对点第三,四,五种是一对多,都属于订阅模型,只不过是进行路由的方式不同。第六种RPC远程调用也可不算做模式本文参照网站:https://www.rabbitmq.com/getstarted.html一,一对一简单模式概念生产者将消息发送到“ hello”队列。使用者从该队列接收消息。图解“ P”是我们的生产者“

2020-08-06 16:27:43 4248

原创 RabbitMQ介绍

什么是AMQP?是一种为中间件设计的应用层标准高级的消息队列协议,用来统一数据在客户端与服务端交互的格式,不受任何中间件产品和其他条件所限制。MQ三大主要功能异步解耦削峰一,RabbitMQ介绍介绍RabbitMQ是基于AMQP的一款开源的消息管理系统可以用来做消息中间件支持主流操作系统:Linux,Windows,MacOX等多种开发语言支持,java,python,ruby,PHP,node.js等RabbitMQ工作基本流程Broker: 是一个或者

2020-08-06 16:08:33 496

原创 Redis之频道和模式的发布订阅

一,什么是发布订阅概念发布订阅模式又叫观察者模式,是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。由三部分组成:发布者(pub),订阅者(sub)和频道(channel)Redis 客户端可以订阅任意数量的频道。Redis 在订阅者和发布者之间起到了消息路由的功能。发布订阅过程当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给

2020-07-25 19:13:41 746

原创 Redis之(pipline)管道

一,Redis管道概念redis-py默认执行每次连接都会创建和断开一次连接操作,如果一次请求中想要执行多个命令需要使用piplineimport redisconn = redis.StrictRedis(host='127.0.0.1',port=6379)#创建管道pip = conn.pipeline(transaction=False)#缓冲多个命令pip.keys('*').set('name','Max').sadd('sex','boy').incr('num')pip

2020-07-21 20:23:13 520

原创 python连接Linux中的Redis

一,准备远程访问工作Redis开启远程访问将bind 127.0.0.1注释protected-mode 改为nodaemonize 改为yes将Linux防火墙关掉(如下常用命根据情况参考)关闭防火墙命令:systemctl stop firewalld.service开启防火墙:systemctl start firewalld.service关闭开机自启动:systemctl disable firewalld.service开启开机启动:systemctl enabl

2020-07-19 16:38:54 586

原创 Redis之缓存穿透, 雪崩, 击穿

一,缓存穿透概念:访问一个不存在的key,缓存不起作用,请求会穿透到DB,流量大时DB会挂掉。解决方案:采用布隆过滤器,使用一个足够大的bitmap,用于存储可能访问的key,不存在的key直接被过滤;访问key未在DB查询到值,也将空值写进缓存,但可以设置较短过期时间。二,缓存雪崩概念:大量的key设置了相同的过期时间,导致在缓存在同一时刻全部失效,造成瞬时DB请求量大、压力骤增,引起雪崩。解决方案:可以给缓存设置过期时间时加上一个随机值时间,使得每个

2020-07-17 15:34:06 101

原创 redis.Redis与redis.StrictRedis区别

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令(比如,SET命令对应与StrictRedis.set方法)。Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。 简单说,官方推荐使用StrictRedis方法。不推荐Redis类,原因是他和咱们在redis-cli操作有些不一样,主要不一样是下面这三个方面。LREM:参数‘num’和‘value’的顺序交换了..

2020-07-17 14:48:05 1195

原创 上传图片和分页

一, 图片上传模板层上传图片(注意form表单){% load staticfiles %}[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传展示图片{% for course in courses %} <tr> <td>{{ course.course }}</td> <td>{{ course.user }}</td>

2020-05-25 18:02:40 139

原创 Linix安装Redis

一下操作均在root权限下执行确保环境里有gcc查看gcc版本 gcc -v安装gcc : yum install gcc-c++下载安装包连接 #我把压缩包下载到了opt文件夹下 wget http://download.redis.io/redis-stable.tar.gz 解压tar -zxvf redis-stable.tar.gz 进行安装cd redis-stablemake如果报错可能需要升级gcc [外链图片转存失败,源站可能有

2020-05-25 16:07:16 119

原创 Redis--主从复制

redis的主从复制中主以写为主,从以读为主一,Redis主从复制的使用配从(库)不配主(库)从库配置命令:slaveof 主库IP 主库端口每次与master断开之后,都需要重新连接,除非在从机上到redis.fonf文件中配置修改配置文件细节操作(主机中)拷贝多个redis.conf文件 :cp redis.conf redis001.conf …开启daemonize yesPid 文件名:pidfile /var/run/redis001.pid指定端口 :6380

2020-05-20 14:14:21 126

原创 Redis--消息发布订阅命令

在正常工作中不会用到redis做消息中间件,但也要会用PSUBSCRIBE new*:订阅一个或多个符合给定模式的频道(订阅多个新闻台,通用符 * new1 new2 new3 )SUBSCRIBE c1 c2 c3:订阅给定的一个或多个频道的信息(订阅c1,c2,c3三个频道)PUBLISH c2 :将信息发送到指定的频道(将信息发送到c2频道)PUNSUBSCRIBE :退订所有给定模式的频道PUBSUB:查看订阅与发布系统状态UNSUBSCRIBE:退订给定的频道...

2020-05-19 18:17:34 139

原创 Redis之事务

一,Redis事务介绍什么是redis的事务可以执行多行命令,本质是一组命令的集合,一个事务中的所有命令都会序列化,按顺序的串行化执行,而不会被其他命令插入,不许加塞redis的事务使用环境用在一个队列中,一次性、顺序性、排他性的执行一系类命令二,使用Redis事务常用命令multi 标记事务块的开始;discard 取消事务,放弃执行事务块内的所有命令;exec 执行所有事务块内的命令;unwatch 取消watch命令对所有key的监视;

2020-05-08 21:33:19 90

原创 redis持久化---AOF与RDB区别

一,RDB与AOF区别RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储AOF持久化方式记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始数据,AOF命令以redis协议追加保存每次写的操作到文件末尾,redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大只做缓存的时候可以不做任何持久化同时开启两种持久化方式时当redis重启时会优先载入A...

2020-05-06 20:55:34 4130 1

原创 Redis持久化--AOF

一,介绍什么是AOF?以日志的形式来记录每一个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),只许追加文件不许改写文件,redis重启之处会会读取该文件重新构建数据,inother words,如果redis重启就会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。二,AOF配置appendonly 默认是no yes才是执行AOF持久化app...

2020-05-06 19:56:51 159

原创 Redis持久化---RDB

一,基本概念官网介绍RDB即Redis DataBase,在指定时间间隔内将内存中的数据集快照写入磁盘,简称快照,它恢复时是将快照文件直接读到内存里,简单理解是指定时间块的数据写入磁盘。Rdb工作过程Redis会单独创建(fork)一个子进程来进行持久化,会将数据写入到一个临时文件中,待持久化过程结束,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO...

2020-05-03 18:34:05 180

原创 python连接hive

安装需要的模块(有的可以忽略)# pip install sasl(wheel:https://www.lfd.uci.edu/~gohlke/pythonlibs)# pip install thrift# pip install thrift-sasl# pip install PyHive执行代码from pyhive import hiveconn = hive....

2020-03-21 23:51:07 148

原创 大数据

一,大数据简单介绍大数据的4大特性:数据量巨大:G<T<PB<EB<ZB数据类型多样价值密度低,商业价值高速度要求快,输入输出,计算速度要求快常见的分布式文件存储系统GFS(Google File System):擅长处理单个大文件HDFS(Hadoop Distributed Filesystem):擅长处理单个大文件ClusterFS:集...

2020-03-17 00:21:48 121

原创 Python一行实现功能

Django一行实现功能字典中使用for循环the_objects = User.objects.values('age').filter(age__in=[12,34,45]).distinct()[:20]ret = {'ret': [{'data': one_object['age'],'value': one_object['age']} for one_object in t...

2020-02-16 16:55:37 55

原创 Redis.conf配置文件

一,INCLUDES模块可存放其他的配置文件二,General模块(通用,标准化模块)deamonize no改为yespidfile /var/run/redis.pid 当redis进程启动时没有指定其他路径则在此路径运行port 6379Tcp-backlogbacklog是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列在高并...

2020-02-04 23:24:33 248

原创 Redis-基础知识(包含基础命令)

一,单进程redis使用单进程模型来处理客户端的请求,通过epoll函数的包装来得到,Redis的实际处理速度完全依靠主进程的执行效率Epoll是Linux内核为处理大批量文件描述符而做了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。二,redis默认16个数据库,从0开始,初始默...

2020-02-04 17:32:18 127

原创 Redis-分布式数据库CAP原理

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-02-03 13:57:30 257

原创 代码块优化

代码块优化return + **kwargs组合#定义一个具有可复用性的list函数def list(request, template, **kwargs): info = User.objects.filter(**kwargs) context = { 'tasks': tasks, } return render(request,...

2019-12-06 10:03:14 121

原创 Python之urllib.parse模块

Python之urllib.parse模块简介:此模块用来处理url的一个模块里面有很多方法,一般用于爬虫中,暂时介绍几种,不定时更新urlparse(url, scheme=’’, allow_fragments=True)(最常用的方法)作用:可以用来确定网络协议(HTTP、FTP等等 )、服务器地址、文件路径,等。返回值:是一个元组。每个组件是一串字符,也有可能是空的。组件...

2019-12-04 15:00:14 187

原创 Django transaction事务

Django transaction事务使用方法:atomic允许我们在执行代码块时,在数据库层面提供原子性保证。 如果代码块成功完成, 相应的变化会被提交到数据库进行commit;如果执行期间遇到异常,则会将该段代码所涉及的所有更改回滚。from django.db import transactiondef func(request): with transaction.a...

2019-12-04 14:03:24 191 2

原创 自定义Global全局变量

自定义Global全局变量目录:一方法是(类名.变量名)在类内共用二方法是自建全局变量文件**一,使用背景:**在同一个类里尤其是含有底层的代码块时,不能__init__初始化变量,可以用下面方法来共用变量 class TaskAdmin(admin.ModelAdmin): #定义一个类 list_filter = ( Is_Legal, ...

2019-12-03 18:34:56 1133 3

空空如也

空空如也

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

TA关注的人

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