avatar
文章
122
标签
68
分类
8

首页
归档
分类
标签
随笔
Bookandmusic
搜索
首页
归档
分类
标签
随笔

Bookandmusic

python整理
置顶|发表于2022-04-14|PYTHON
基础 collections模块 python-内置函数 python异常 递归函数 python匿名函数 python高阶函数 装饰器基础 python面向对象 python魔法方法 python中的callable概念 多任务 python多任务机制 ThreadPoolExecutor和ProcessPoolExecutor asyncio异步IO 网络通信 简单WEB服务器 多种方式实现并发WebServer 算法 经典排序算法总结与实现 理论剖析 python垃圾回收机制 GIL全局解释器锁 CPython的内存概念:栈、堆和引用 python内存管理 python变量作用域 项目集成 装饰器常见应用 对象持久化 time与timeit模块 python-Re模块 python正则匹配 python实现超时退出 python集成redis JWS的python实现方案 python自动化测试
Django3.2和WebSocket
发表于2022-05-03|Celery•Django•WebSocket
在这篇文章中,将在 Django 应用程序中启用 WebSocket,而无需安装第三方应用程序。 Django 从 3.0 版本开始引入了 ASGI 接口,并在 3.1 版本中引入了异步视图。我们的解决方案将基于异步视图。 在本教程中,我们将使用 Python 3.7 和 Django 3.2。 WebSocket ASGI 接口介绍ASGI 是为我们服务多年的旧 WSGI 协议的替代协议,它将在未来 2-3 年内成为 Python Web 框架中的事实标准。 那么,WebSocket 在这种情况下是如何工作的呢? WebSocket 客户端和服务器应用程序之间的通信是基于事件的。 ASGI 规范定义了两种类型的事件:发送和接收。 接收事件: 这些是客户端发送到服务器应用程序的事件: websocket.connect 当客户端尝试与我们的应用程序建立连接时发送 websocket.receive 当客户端向我们的应用发送数据时发送 websocket.disconnect 告诉我们客户端已断开连接。 发送事件: 是由服务器应用程序发送到客户端(例如浏览器): websock ...
docker系列-docker命令
发表于2022-04-17|Docker
容器生命周期创建并启动容器 基于mysql 5.7版本的镜像 --name: 指定容器名字为mysql3307 -p: 端口映射,将容器内的3306的端口号与本地主机的3307进行映射 -v: 路径映射,将容器内的/var/lib/mysql/与本地主机的~/mysql/进行映射 -d: 代表后台运行容器,返回容器ID -i: 代表需要进行容器内,进入交互模式 -t: 指定进入模式时,所使用的终端工具,一般it是绑定使用 容器的名字和ID都是唯一的,对容器进行操作时,通过容器名或ID都可以找到唯一的容器 1docker run -itd --name="mysql3307" -p 3307:3306 -v ~/mysql3307/conf/:/etc/mysql/ -v ~/mysql3307/data:/var/lib/mysql -v ~/mysql3307/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD="mysql" mysql:5.7 /bin/bash 创建容器 1docker cr ...
python集成ES
发表于2022-04-16|PYTHON•Elasticsearch
ElasticSearchelaticsearch:Elasticsearch 的官方低级客户端。它的目标是为 Python 中所有与 Elasticsearch 相关的代码提供基础操作,类似于pymysql。 安装1pip install elasticsearch 链接123456789101112from elasticsearch import Elasticsearches = Elasticsearch( ['localhost:9200'], # 启动前嗅探es集群服务器 # sniff_on_start=True, # es集群服务器结点连接异常时是否刷新es节点信息 # sniff_on_connection_fail=True, # 每60秒刷新节点信息 # sniffer_timeout=60) 索引12345# 在创建索引时忽略由 IndexAlreadyExistsException 引起的 400 已经存在rs = es.indices.create(index='employee& ...
python-Re模块
发表于2022-04-14|PYTHON•正则
正则表达式   re 模块是 python 独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。 注意: re 模块是 python 独有的 正则表达式所有编程语言都可以使用 规则字符 元字符 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线 \s 匹配任意的空白符 \d 匹配数字 \n 匹配一个换行符 \t 匹配一个制表符 \b 匹配一个单词的结尾 ^ 匹配字符串的开始 $ 匹配字符串的结尾 \W 匹配非字母或数字或下划线 \D 匹配非数字 \S 匹配非空白符 [...] 匹配字符组中的任一字符 [^...] 匹配除了字符组中字符的所有任一字符 `a b` (ab) 匹配括号内的表达式,即将括号中字符作为一个分组 \num 引用分组num匹配到的字符串 量词 量词 说明 * 零次或无限次 + 一次或无限次 ? 零次或一次 {n} n ...
python集成redis
发表于2022-04-10|PYTHON•Redis•事务
Python中使用Redis使用 python 操作 redis,可以安装一个第三方库,名字就叫做 redis。它提供了一些接口,能够使我们更加方便的操作 redis。 安装1pip install redis 普通连接python 操作 redis,需要通过一个 redis 连接对象来进行: 123456789101112131415In [1]: import redisIn [2]: conn = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)In [3]: conn.set('k11', 11) # 操作成功,返回True。否则,返回FalseOut[3]: TrueIn [4]: conn.get('k11') # 返回的都是字符串Out[4]: '11' In [9]: conn.rpush('names', 1, 2, 3, 4)Out[9]: 4In [10]: con ...
Redis高级特性-事务
发表于2022-04-06|NoSQL•Redis•事务
事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行执行而不会被其它命令插入,不许加塞。 一个队列中,一次性、顺序性、排他性的执行一系列命令 命令下表列出了 redis 事务的相关命令: 序号 命令及描述 1 DISCARD 取消事务,放弃执行事务块内的所有命令。 2 EXEC 执行所有事务块内的命令。 3 MULTI 标记一个事务块的开始。 4 UNWATCH 取消 WATCH 命令对所有 key 的监视。 5 WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。 案例 正常执行事务 123456789101112131415127.0.0.1:6379> MULTIOK127.0.0.1:6379> set k1 1QUEUED127.0.0.1:6379> set k2 2QUEUED127.0.0.1:6379> get k2QUEUED127.0.0.1:6379> set ...
Redis高级特性-主从复制
发表于2022-04-06|NoSQL•主从同步•Redis
主从复制概念所谓的主从复制,就是主机数据更新后根据陪着和策略。自动同步到备机的master/slave 机制。master以写为主,slave以读为主。 可以达到:读写分离,容灾恢复 原理Slave启动成功连接到master后会发送一个sync命令 Master接到命令启动后台的存盘进程,同时收集所有接收到的用修改数据集命令, 在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步 但是只要是重新连接naster,一次完全同步(全量复制)将被自动执行 缺点由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。 ​ 案例配从库,不配主库 从库配置 replicaof <masterip> <master ...
Redis高级特性-发布订阅
发表于2022-04-06|NoSQL•Redis
发布订阅进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端: 命令下表列出了 redis 发布订阅常用命令: 序号 命令及描述 1 PSUBSCRIBE pattern pattern ... 订阅一个或多个符合给定模式的频道。 2 PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。 3 PUBLISH channel message 将信息发送到指定的频道。 4 PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。 5 SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。 6 U ...
Redis高级特性-持久化
发表于2022-04-06|NoSQL•Redis
持久化Redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。 RDBRDB(Redis DataBase): 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。 整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。 Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一 ...
Redis高级特性-配置文件解析
发表于2022-04-04|NoSQL•Redis
Unit1234567891011# Note on units: when memory size is needed, it is possible to specify# it in the usual form of 1k 5GB 4M and so forth:## 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# 1g => 1000000000 bytes# 1gb => 1024*1024*1024 bytes## units are case insensitive so 1GB 1Gb 1gB are all the same. 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit 对大小写不敏感 INCLUDE123456789101112131415# Include one or more other config files here. This is useful if you# ...
Redis基础教程
发表于2022-04-01|NoSQL•Redis
Redis概念Redis:REmote Dictionary Server(远程字典服务器)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,也被人们称为数据结构服务器。 优势 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用 Redis不仅仅支持简单的key-value类型的数据,同时还提供list, set, zset, hash等数据结构的存储 Redis支持数据的备份,即master-slave模式的数据备份 单进程 Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。 单线程还能这么快 第一,纯内存访问,Redis将所有数据放在内存中,内存的响应时长大约为100纳秒,这是Redis达到每秒万级别访问的重要基础。 第二,非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件 ...
12…11
avatar
bookandmusic
文章
122
标签
68
分类
8
最新文章
Django3.2和WebSocket2022-05-03
docker系列-docker命令2022-04-17
python集成ES2022-04-16
python-Re模块2022-04-14
python整理2022-04-14
分类
  • 前端9
  • 后端56
  • 多任务机制8
  • 工具16
  • 数据库22
  • 数据结构1
  • 算法3
  • 网络7
标签
Auth CRUD CSRF Celery DRF Django Docker Elasticsearch Error FTP Flask Git Gunicorn HTTP JavaScript Linux Mac MongoDB MySQL Nginx NoSQL ORM PYTHON Redis Restful SCP SQL注入 SSH STFP Server Supervisor Vue WebSocket Windows XSS axios cache cookie cors download
归档
  • 五月 20221
  • 四月 202211
  • 三月 202211
  • 二月 20221
  • 一月 202210
  • 十月 20215
  • 九月 20211
  • 八月 20215
网站资讯
文章数目 :
122
本站访客数 :
本站总访问量 :
最后更新时间 :
©2019 - 2022 By bookandmusic
框架 Hexo|主题 Butterfly
京ICP备2021028097号
搜索