python RabbitMQ队列/redis

RabbitMQ队列  

安装 http://www.rabbitmq.com/install-standalone-mac.html

安装python rabbitMQ module


1

2

3

4

5

6

7

pip install pika

or

easy_install pika

or

源码

 

https://pypi.python.org/pypi/pika

实现最简单的队列通信

produce

 1 import pika
 2 connection = pika.BlockingConnection(pika.ConnectionParameters("192.168.244.130",15672))
 3 channel = connection.channel()
 4 #声明queue
 5 channel.queue_declare(queue=‘hello‘)
 6 channel.basic_publish(exchange="",
 7                       routing_key=‘hello‘,
 8                       body = ‘Hello World!‘)
 9 print("[x] Sent ‘Hello World!")
10 connection.close()

consume

 1 import pika
 2
 3 connection = pika.BlockingConnection(pika.ConnectionParameters("192.168.16.23"))
 4 channel = connection.channel()
 5 channel.queue_declare(queue="holle",durable=True)
 6 def callback(ch,method,properties,body):
 7     print(ch,method,properties)
 8     print("[x] Received %r" %body)
 9     ch.basic_ack(delivery_tag=method.delivery_tag)
10 channel.basic_qos(prefetch_count=1)
11 channel.basic_consume(callback,
12                       queue="holle",
13                       no_ack=True)
14
15
16 print(‘[*] waiting for messages. to exit press ctrl+c‘)
17 channel.start_consuming()

redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

一、Redis安装和基本使用


1

2

3

4

wget http://download.redis.io/releases/redis-3.0.6.tar.gz

tar xzf redis-3.0.6.tar.gz

cd redis-3.0.6

make

启动服务端


1

src/redis-server

启动客户端


1

2

3

4

5

src/redis-cli

redis> set foo bar

OK

redis> get foo

"bar"

二、Python操作Redis


1

2

3

4

5

6

7

sudo pip install redis

or

sudo easy_install redis

or

源码安装

详见:https://github.com/WoLpH/redis-py

1、操作模式

redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。


1

2

3

4

5

6

7

8

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import redis

= redis.Redis(host=‘10.211.55.4‘, port=6379)

r.set(‘foo‘‘Bar‘)

print r.get(‘foo‘)

2、连接池

redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。


1

2

3

4

5

6

7

8

9

10

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import redis

pool = redis.ConnectionPool(host=‘10.211.55.4‘, port=6379)

= redis.Redis(connection_pool=pool)

r.set(‘foo‘‘Bar‘)

print r.get(‘foo‘)

3、操作

String操作,redis中的String在在内存中按照一个name对应一个value来存储。如图:

set(name, value, ex=None, px=None, nx=False, xx=False)set name alex
    在Redis中设置值,默认,不存在则创建,存在则修改
    参数:
         ex,过期时间(秒)
         px,过期时间(毫秒)
         nx,如果设置为True,则只有name不存在时,当前set操作才执行
         xx,如果设置为True,则只有name存在时,岗前set操作才执行

  

setnx(name, value)
setnx aaa juck
    设置值,只有name不存在时,执行设置操作(添加)

  

set(name, value, time)
set ccc ccc ex 30
# 设置值
# 参数:
    # time_ms,过期时间(数字毫秒 或 timedelta对象

  

mset(*args, **kwargs)
批量设置值
如:
    mset(k1=‘v1‘, k2=‘v2‘)
    或
    mget({‘k1‘: ‘v1‘, ‘k2‘: ‘v2‘})

  

get(name)
获取值

  

mget(keys, *args)
批量获取
如:
    mget(‘k‘,‘k2‘)
    或
    r.mget([‘k‘, ‘k2‘])

  

getset(name, value)
getset k2 k2
设置新值并获取原来的值

  

时间: 2024-10-25 21:41:59

python RabbitMQ队列/redis的相关文章

python RabbitMQ队列使用(入门篇)

---恢复内容开始--- python RabbitMQ队列使用 关于python的queue介绍 关于python的队列,内置的有两种,一种是线程queue,另一种是进程queue,但是这两种queue都是只能在同一个进程下的线程间或者父进程与子进程之间进行队列通讯,并不能进行程序与程序之间的信息交换,这时候我们就需要一个中间件,来实现程序之间的通讯. RabbitMQ MQ并不是python内置的模块,而是一个需要你额外安装(ubunto可直接apt-get其余请自行百度.)的程序,安装完毕

<七>RabbitMQ队列

---恢复内容开始--- MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术.排队指的是应用程序通过 队列来通信.队列的使用除去了接收和发送应用程序同时执行的要求.其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等. python Rabb

Python自动化 【第十一篇】:Python进阶-RabbitMQ队列/Memcached/Redis

 本节内容: RabbitMQ队列 Memcached Redis 1.  RabbitMQ 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 实现最简单的队列 send 端 received 端 1.1 Work Queues 在这

Python基础16 - RabbitMQ队列、Redis缓存数据库

@@@文章内容参照老男孩教育 Alex金角大王,武Sir银角大王@@@ RabbitMQ队列 下载安装http://www.rabbitmq.com/install-windows.html RabbitMQ 教程官网:http://www.rabbitmq.com/getstarted.html RabbitMQ:erlang语言 开发的. Python中连接RabbitMQ的模块:pika .Celery(分布式任务队列) .haigha可以维护很多的队列 几个概念说明: Broker:简单

Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Memc

python之路day11【RabbitMQ、Redis、Mysql】

大纲 1.RabbitMQ 2.Redis 3.Mysql 1.RabbitMQ消息队列 1.1 RabbitMQ简介 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然. AMQP的主要特征是面向消息.队列.路由(包括点对点和发布/订阅).可靠性.安全. RabbitMQ是一个开源的AMQP实现,服务器端用Erlan

Python 11:RabbitMQ、redis

Python 11:RabbitMQ.redis 1.RabbitMQ 2.缓存数据库:redis 一.RabbitMQ  1.基本信息 市面上的MQ:rabbitMQ.ZeroMQ.ActiveMQ rabbitMQ是基于erlang 开发的安装前需要先装环境,默认端口5672 2.简单通信 1 import pika 2 connection = pika.BlockingConnection( 3 pika.ConnectionParameters('localhost')) 4 chan

Python之路【第14章】:Python之缓存 RabbitMQ、Redis、Memcache、SQLAlchemy

Python之缓存 RabbitMQ.Redis.Memcache.SQLAlchemy 一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 1. Memcached安装和

8-3:协程、异步IO、数据库、rabbitMQ队列、redis缓存

https://www.cnblogs.com/alex3714/articles/5248247.html 本节内容 1.Gevent协程 2.Select\Poll\Epoll异步IO与事件驱动 3.Python连接Mysql数据库操作 4.RabbitMQ队列 5.Redis\Memcached缓存 6.Paramiko SSH 7.Twsited网络框架 原文地址:https://www.cnblogs.com/chenhuan123/p/12038657.html