Python操作redis的订阅发布功能

安装redis-server

yum -y install gcc gcc-c++    #安装编译工具

cd /opt

wget -c http://download.redis.io/releases/redis-3.0.5.tar.gz   #下载包

tar xf redis-3.0.5.tar.gz     #解压

cd redis-3.0.5

make MALLOC=libc  #编译

make PREFIX=/usr/local/redis install  #安装

echo ‘PATH=/usr/local/redis/bin:$PATH‘ >> /etc/profile    #配置环境变量

source /etc/profile #或 . /etc/profile

mkdir /usr/local/redis/conf  #创建目录

cp /opt/redis-3.0.5/redis.conf /usr/local/redis/conf/   #拷贝配置文件

sed -i "46s#/var/run/redis.pid#/usr/local/redis/conf/redis.pid#" /usr/local/redis/conf/redis.conf

sed -i "192s#./#/usr/local/redis/conf/#" /usr/local/redis/conf/redis.conf

sed -i 509s/no/yes/ /usr/local/redis/conf/redis.conf

nohup redis-server /usr/local/redis/conf/redis.conf &> /dev/null &

echo vm.overcommit_memory = 1 >> /etc/sysctl.conf

sysctl -p

lsof -i:6379  #查看端口有没有起来

安装pip命令依赖包

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz --no-check-certificate

cd setuptools-0.6c11

python setup.py build

python setup.py install

安装pip命令

wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

tar xf pip-1.5.4.tar.gz

cd pip-1.5.4

python setup.py install

安装redis的Python api

pip install redis

测试

[[email protected] opt]# python

Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)

[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import redis

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

>>> r.set(‘foo‘, ‘Bar‘)

>>> print r.get(‘foo‘)

"Bar"

[[email protected] opt]# redis-cli

127.0.0.1:6379> get foo

"Bar"

redis订阅和发布功能演示

[[email protected] opt]# cat redishelper.py

#!/usr/bin/env python

#coding:utf-8

import redis

class RedisHelper:

def __init__(self):

self.__conn = redis.Redis(host=‘127.0.0.1‘)

self.chan_sub = ‘fm87.7‘  #订阅频道

self.chan_pub = ‘fm87.7‘  #接收频道

def get(self,key):

return self.__conn.get(key)

def set(self,key,value):

self.__conn.set(key,value)

def public(self,msg):   #在chan_pub这个频道发布消息

self.__conn.publish(self.chan_pub,msg)

return True

def subscribe(self):  #订阅接收

pub = self.__conn.pubsub()  #打开收音机

pub.subscribe(self.chan_sub)  #订阅频道

pub.parse_response()   #等待消息

return  pub  #开始接收

if __name__ == ‘__main__‘:

t = RedisHelper()

t.public(‘test‘) #发布了test这个消息

在一端执行脚本

python redishelper.py

另一端查看

>>> import redishelper

>>> r = redishelper.RedisHelper()

>>> r.subscribe()

<redis.client.PubSub object at 0x7f1789422950>

>>> recv = r.subscribe()

>>> recv.parse_response()

[‘message‘, ‘fm87.7‘, ‘test‘]

订布发阅演示2

#在一个终端打开这个

>>> import redis

>>> r = redis.Redis(host=‘127.0.0.1‘)

>>> chan = r.pubsub()       #打开频道

>>> chan.subscribe("fm100") #调到该频道

>>> chan.parse_response()   #测试监听频道

[‘subscribe‘, ‘fm100‘, 1L]

>>> chan.parse_response()   #再次执行成阻塞状态等待消息的到来

>>> while True:          #写成死循环

...  chan.parse_response()

在另一个终端打开发布消息

>>> import redis

>>> p = redis.Redis(host=‘127.0.0.1‘)

>>> p.publish(‘fm100‘,‘Hellow World!!!‘)

1L

回到之前那终端发现已经出来消息

>>> while True:

...  chan.parse_response()

...

[‘message‘, ‘fm100‘, ‘Hellow World!!!‘]

时间: 2024-10-07 01:48:47

Python操作redis的订阅发布功能的相关文章

Redis订阅发布功能

Redis安装使用 1.下载Redis:http://redis.io/download 2.解压安装: #tar zxf redis-3.0.6.tar.gz #make 3.启动 #cd /usr/local/src/redis-3.0.6 #src/redis-server & 4.检查 5.登陆 #src/redis-cli 6.常用命令  set name 'yangmv'        存数据            get name                        取数

Python 操作Redis

redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性

Python操作Redis、Memcache、RabbitMQ、SQLAlchemy

Python操作 Redis.Memcache.RabbitMQ.SQLAlchemy redis介绍:redis是一个开源的,先进的KEY-VALUE存储,它通常被称为数据结构服务器,因为键可以包含string(字符串).hash(哈希).list(链表).set(集合)和zset(有序集合),这些数据类型都支持push/pop.add/remove及取交集和并集及更丰富的操作,redis支持各种不同方式的排序.为了保证效率,数据都是缓存在内存中,它也可以周期性的把更新的数据写入磁盘或者把修改

python 操作 redis

一.简介 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的

Redis 以及 Python操作Redis

Redis Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis有以下特点: -- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. -- Redis支持五种数据类型. -- Redis支持数据库备份. Redis的优势: -- Redis性能极高,读的速度是110000次/s,写的速度是81000次/s. -- Redis丰富的数据类型,String,Lists,Hashes,Sets以及Ordered S

使用Python操作Redis详解

之前的五天,过了个愉快的周末,然后将公司AbaseDump的调度部分代码看懂并且在此之上完成了OnlyDump的功能代码,代码不可以公开,今天完工,明天测试,晚上来总结一下这几天学到的一点应用. 使用Python操作Redis详解 ------------------------------------------------------------------------------------------------- 一. 文档说明 本文档仅介绍Redis在Python中的使用,Redis

Python学习之使用Python操作Redis数据库

最近在写一个检查一台服务器上所有游戏区服配置文件中redis某个key值大小的脚本,本打算使用shell+awk+sed的方式去解决这个问题,但是由于redis的配置信息是php数组形式.shell脚本一时没有写出来,就请教他人帮忙写了个python脚本,但是自己python不是很精通,于是按照脚本中涉及到的python知识现学现用,然后根据自己的需求更改脚本.这里分享一下如何使用python操作redis数据库. Redis的Python驱动源码下载地址是https://github.com/

Python—操作redis

Python操作redis 1.String 操作 redis中的String在在内存中按照一个name对应一个value来存储 set() #在Redis中设置值,默认不存在则创建,存在则修改 r.set('name', 'zhangsan') '''参数: set(name, value, ex=None, px=None, nx=False, xx=False) ex,过期时间(秒) px,过期时间(毫秒) nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setn

第二百九十七节,python操作redis缓存-List类型,可以理解为列表

python操作redis缓存-List类型,可以理解为列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: