关于消息队列

  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 学习十一的更多相关文章

  1. 从零开始学习PYTHON3讲义(十一)计算器升级啦

    (内容需要,本讲中再次使用了大量在线公式,如果因为转帖网站不支持公式无法显示的情况,欢迎访问原始博客.) <从零开始PYTHON3>第十一讲 第二讲的时候,我们通过Python的交互模式来 ...

  2. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...

  3. python3.4学习笔记(十一) 列表、数组实例

    python3.4学习笔记(十一) 列表.数组实例 #python列表,数组类型要相同,python不需要指定数据类型,可以把各种类型打包进去#python列表可以包含整数,浮点数,字符串,对象#创建 ...

  4. python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容

    python3.4学习笔记(十七) 网络爬虫使用Beautifulsoup4抓取内容 Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖 ...

  5. python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容

    python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...

  6. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  7. 【转载】 强化学习(十一) Prioritized Replay DQN

    原文地址: https://www.cnblogs.com/pinard/p/9797695.html ------------------------------------------------ ...

  8. python3.4学习笔记(十八) pycharm 安装使用、注册码、显示行号和字体大小等常用设置

    python3.4学习笔记(十八) pycharm 安装使用.注册码.显示行号和字体大小等常用设置Download JetBrains Python IDE :: PyCharmhttp://www. ...

  9. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

随机推荐

  1. Spring框架整合WEB解决配置文件加载多次的问题

    1. 创建JavaWEB项目,引入Spring的开发包.编写具体的类和方法. * 环境搭建好后,启动服务器来测试项目,发送每访问一次都会加载一次配置文件,这样效率会非常非常慢!! 2. 解决上面的问题 ...

  2. struts框架问题五之向值栈中保存数据

    5. 问题五: 向值栈保存数据 (主要针对root栈) > valueStack.push(Object obj); * push方法的底层调用root对象的push方法(把元素添加到0位置) ...

  3. No handlers could be found for logger “apscheduler.executors.default”?

    Call logging.basicConfig() before instantiating the scheduler. That lets you see what the real probl ...

  4. idea 注释文件和方法注释

    类注释: 如下图所示

  5. 另辟蹊径:vue单页面,多路由,前进刷新,后退不刷新

    目的:vue-cli构建的vue单页面应用,某些特定的页面,实现前进刷新,后退不刷新,类似app般的用户体验.注: 此处的刷新特指当进入此页面时,触发ajax请求,向服务器获取数据.不刷新特指当进入此 ...

  6. 通过ANT实现jmeter批量执行脚本、生成报告、发送邮件全套build.xml文件

    在开始通过ANT运行build.xml之前,有一步必须要做,那就是将JMeter所在目录下extras子目录里的ant-JMeter-1.1.1.jar复制到Ant所在目录lib子目录之下,这样Ant ...

  7. 6. Manage the driver for browser and the script for Hub

  8. js中为什么非要alert一下下一步才会执行

    多数原因为界面ajax中动态添加的元素还没被添加上,就执行了js函数(js函数要调用动态元素),解决办法:ajax方法中添加 async:false,同步,作用为,在ajax执行完毕后才执行之后的js ...

  9. 2018.07.06 POJ2536 Gopher II(二分图匹配)

    Gopher II Time Limit: 2000MS Memory Limit: 65536K Description The gopher family, having averted the ...

  10. javascript 字符数组转换成以逗号隔开的字符串

    var ids = [];angular.forEach(pulsarServers,function (server) { ids.push(server.id);});ids = ids.join ...