暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 操作redis模块

每日一Python 2017-10-19
263

1

redis

redis是一个key-value存储系统 ,通常被称为数据结构服务器,因为值(value)可以是字符串、哈希、列表、集合和有序集合等类型;

这些数据类型都支持push/pop、add/remove以及取交集并集和差集等更丰富的操作,且这些操作都是原子性的。

Python操作redis模块时,要先启动redis;

2

基本操作:


首先,实例化redis所在主机的IP和端口号,然后就可以.set()设置key和value进行存储,通过.get()读取value值:

import redis

rr=redis.Redis(host='127.0.0.1', port=6379)

rr.set('key1','value1')

rr.get('key')


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

import redis

pool=redis.ConnectionPool(host='127.0.0.1', port=6379)

rr = redis.Redis(connection_pool=pool)

rr.set('key2','value2')

rr.get('key2')


redis-py默认在执行每次请求时都会创建和断开一次连接,如果想要在一次请求中指定多个命令,可以使用pipline(管道)来实现一次请求指定多个命令;

import redis

pool=redis.ConnectionPool(host='127.0.0.1', port=6379)

rr=redis.Redis(connection_pool=pool)

pipe=rr.pipeline(transaction=True)

rr.set('key1', 'value1')

rr.set('key2', 'value2')

pip.execute()



3

发布与订阅

发布与订阅:

---创建redisdemo.py文件:

import redis 

class Redispub:

    def __init__(self):

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

        self.pub_name = 'fm12'

        self.sub_name = 'fm12'

        

    def public(self,mes):

        self.__conn.publish(self.sub_name, mes)

        return True

    

    def subscribe(self):

        pub = self.__conn.pubsub()

        pub.subscribe(self.sub_name)

        pub.parse_response()

        return pub

----创建pub.py文件(发布者)

from redisdemo import Redispub


pubobj =  Redispub()

pubobj.public('hello,欢迎关注每日一Python')


-----创建sub.py文件(订阅者)

from redisdemo import Redispub


subobj = Redispub()

redis_sub = subobj.subscribe()


while True:

    mes = redis_sub.parse_response()

    print(mes)

    print(type(mes))

先执行redisdemo.py文件,然后执行sub.py文件进行订阅,最后执行pub.py文件发布消息,订阅者就会接收到消息;





文章转载自每日一Python,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论