zoukankan      html  css  js  c++  java
  • 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 对有序集合的操作 

    本周作业:

    可以异步的在多台机器上执行多个任务

  • 相关阅读:
    JSON
    robotframework常见的问题
    robotframework——excel处理方法
    robotframework获得随机数字的方法
    robotframework定位动态元素
    robotframework的关键字区分大小写的问题
    自动化测试相关知识
    ride控制台乱码的解决方法
    xpath定位兄弟元素
    python——运算
  • 原文地址:https://www.cnblogs.com/HU-HU/p/9484325.html
Copyright © 2011-2022 走看看