Python3.5 学习十一
关于消息队列
PY 中应用程序里对于消息队列的使用:
1 threading QUEUE
2 进程QUEUE 父进程、父进程下的子进程间进行交互
RabbitMQ 消息队列 :用于应用程序之间,可跨平台的进行通信
RabbitMQ依赖于语言erlang
实例代码举例:20180815 先要安装erlang和pika
pika是python连接RabbitMQ模块的主要工具,celery是很火的分布式任务队列,还有一个叫haigha.
RabbitMQ消息基本实例\轮训分发\确保消息完成\消息可持续\消息公平分发\
RabbitMQ fanout广播模式:fanout_publisher 实时的,当时在线的才能收到。订阅发布,等同于收音机机制
RabbitMQ direct广播模式:分类/级别,只有接受该级别的才能收到
topic细致的消息过滤广播模式:(consumer如果想收所有,后面跟着 # 号则收所有)
缓存存储系统:mongodb、redis、memcache 只能存在内存 轻量级缓存
redis 是一个异步单线程 Key-value缓存系统。
set key value
set key value nx 只有key不存在时,才添加keyvalue对
set key value xx 只有key存在时,才更改key的value
set key ex value 设置超时时间 s
pset key ex value 设置超时时间毫秒
mset 批量设置 如果命令不会用,可以help cmd_str查看命令说明
get 取值
mget 批量取值
getset 设置更改新值并返回之前的值
getrange 相当于取到后给字符串切片操作
setrange 给起点为那个的后面进行赋值
setbit 给二进制位更改值 可以更改二进制位的值,引申为存储上亿的人的ID号等功能。让数据存储量最大化
incr 自增
incrbyfloat
decr 自减
append 追加
RabbitMQ rpc的实现:有发送有返回(远程函数调用remote procedure call)
Redis 对hash操作 hset XXX hgetall XXX hget XXX YYY hkeys XXX hvals XXX hmset hmget hlen hexists hincrby.....hscan hscan_inter
Redis 对集合set的操作
操作列表:lpush names aa bb cc 从左边放入 lrange names 0 -1
rpush names 从右边放 lrange names 从左边拿
lpushx 只有列表存在才放入数据
llen
linsert linsert names after/before aaa bbb
lset names 1 bbb
lrem names 2 test
lpop 从左侧获取第一个元素并移除
lindex
lrange
ltrim 只保留所写的部分值,其他都移除
rpoplpush 从一个列表里右边取出来一个,放到另一个列表的最左边
blpop 删掉并返回 并且可设置无数据时的等待时间
brpoplpush 对一个放一个收的操作,可设置超时时间的命令
对集合的操作:
sadd names 直接去重
smembers names 集合不能用切片形式获取值,因为它是无序的
sdiff 比较两个集合差集
sdiffstore newset set1 set2
sinter 交集
sinterstore
sismember
smembers
smove
spop 右侧尾部移除一个并返回
srandmember 随机获取number个值
srem删除指定的值
sunion 获取并集
sunionstore
sscan 查找 匹配
sscan_inter 同上,但返回一个迭代器
有序集合:
zadd z1 10 alex 5 jack 8 rain 6 jain
zrange 显示值 根据权重从小到大排列 withscores 显示分数
zcount 统计数量
zincrby 自增分数
zrank 获取某个值在该有序队列的排行,从0开始
zrangebylex
zrem 删除
zremrangebyrank 范围内删除
zremrangebyscore
zsore
zinterstore 获取交集 并将scores相加存储
zunionstore 获取并集
zcan_inter 过滤并返回迭代器
Redis对元素的操作函数
del
exists
keys 根据模型获取redis的name
expire 为某个name设置超时时间
rename
move 从元素保存到db redis有15个db
randmkey 随机获取一个key
type 获取类型
scan 检索
redis-py管道
示例写错了,应该是用pipe去set值,这里注意一下
发布与订阅:
Redis 对有序集合的操作
本周作业:
可以异步的在多台机器上执行多个任务
Python3.5 学习十一的更多相关文章
- 从零开始学习PYTHON3讲义(十一)计算器升级啦
(内容需要,本讲中再次使用了大量在线公式,如果因为转帖网站不支持公式无法显示的情况,欢迎访问原始博客.) <从零开始PYTHON3>第十一讲 第二讲的时候,我们通过Python的交互模式来 ...
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- python3.4学习笔记(十一) 列表、数组实例
python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...
- python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容
python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- 【转载】 强化学习(十一) Prioritized Replay DQN
原文地址: https://www.cnblogs.com/pinard/p/9797695.html ------------------------------------------------ ...
- python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置
python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
随机推荐
- .Net多线程 并行编程(三)---并行集合
为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能. 而System.Collections和System.Collections.Generic命名 ...
- PythonQt在windows下的编译
笔者最近在做Qt方面的开发工作,然后需要用到脚本程序对程序内部进行扩展,就很自然的想到了Python,度娘一下发现了一款神器,也就是今天给大家介绍的主角:PythonQt 今天首先给大家介绍下Pyth ...
- NABCD模型--软件工程
1.N (Need 需求) 我们通过网络调查问卷的方式,收集样本数据,并对其进行分析和总结. 1.你是否为在校学生? 7.如果用过,你觉得还应该需要添加什么功能 通过调查发现,大多数学生并不是特别了解 ...
- 匹配数字、字母和?%&=-_这几个符号的正则表达式
/^[\w\?%&=\-_]+$/ 说明:(1) \w 代表 0-9a-zA-Z 即数字.字母 (2) \?%&=\-_ 匹配?%&=-_,而正则中?代表0个或1个,因为是特殊 ...
- Maven系列(二)exec-maven-plugin
Maven系列(二)exec-maven-plugin 1. mvn 命令行运行 # exec:java 不会自动编译代码,你需要手动执行 mvn compile 来完成编译 mvn compile ...
- dotnet core 发布环境变量配置 dev/stage/prod
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 https://d ...
- 【Win】编写简单的bat文件
bat是dos下的批处理文件.批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd. ...
- 2018.07.10NOIP模拟 Draw(容斥原理)
Draw 题目背景 SOURCE:NOIP2016-RZZ-4 T3 题目描述 给定笛卡尔坐标系上 n 个不重复的点. 定义一个 L 形为: 一个形如 (x,y),(x+1,y)-(x+a,y),(x ...
- 动态渲染的input怎么取消记忆功能
方法1 :自定义去除记忆功能属性: $('#index_table_filter > label > input[type="search"]').attr('auto ...
- UVa 11346 Probability (转化+积分+概率)
题意:给定a,b,s,在[-a, a]*[-b, b]区域内任取一点p,求以原点(0,0)和p为对角线的长方形面积大于s的概率. 析:应该明白,这个和高中数学的东西差不多,基本就是一个求概率的题,只不 ...