Python学习19

redis数据库相关操作(redis数据库的搭建)

1、redis数据库的搭建

1、建立redis数据库环境:

    • 在cmd中输入:pip install redis 安装redis包
    • 然后找到redis的解压包中的redis-server.exe并打开不要关闭:
      在这里插入图片描述
      在这里插入图片描述
    • 安装redisdesktopmanager,打开该软件:
      在这里插入图片描述
    • 最后可根据connect to redis server来连接数据库
    • 2、python连接redis数据库

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      import redis
      
      r = redis.Redis(host='192.168.0.110', port=6379,db=0)
      r.set('name', 'zhangsan')   #添加
      print (r.get('name'))   #获取
    • 3、连接池
      redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销

      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      import redis
      
      pool = redis.ConnectionPool(host='192.168.0.110', port=6379)
      r = redis.Redis(connection_pool=pool)
      r.set('name', 'zhangsan')   #添加
      print (r.get('name'))   #获取
    • 4、管道

      • redis-py默认在执行每次请求都会创建(连接池申请连接)和断开(归还连接池)一次连接操作,如果想要在一次请求中指定多个命令,则可以使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline是原子性操作
      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      import redis
      pool = redis.ConnectionPool(host='192.168.0.110', port=6379)
      r = redis.Redis(connection_pool=pool)
      pipe = r.pipeline(transaction=True)
      r.set('name', 'zhangsan')
      r.set('name', 'lisi')
      pipe.execute()
    • 5、发布和阅读

      • 首先定义一个RedisHelper类,连接Redis,定义频道为monitor,定义发布(publish)及订阅(subscribe)方法
      #!/usr/bin/env python
      #-*- coding:utf-8 -*-
      import redis
      class RedisHelper(object):
          def __init__(self):
              self.__conn = redis.Redis(host='192.168.0.110',port=6379)#连接Redis
              self.channel = 'monitor' #定义名称
         
         def publish(self,msg):#定义发布方法
              self.__conn.publish(self.channel,msg)
              return True
         
         def subscribe(self):#定义订阅方法
              pub = self.__conn.pubsub()
              pub.subscribe(self.channel)
              pub.parse_response()
              return pub
      • 发布者
      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      #发布
      from RedisHelper import RedisHelper
      
      obj = RedisHelper()
      obj.publish('hello')#发布
      • 订阅者
      #!/usr/bin/env python
      # -*- coding:utf-8 -*-
      #订阅
      from RedisHelper import RedisHelper
      
      obj = RedisHelper()
      redis_sub = obj.subscribe()#调用订阅方法
      
      while True:
          msg= redis_sub.parse_response()
          print (msg)
posted @ 2020-12-31 15:02  MFTang  阅读(70)  评论(0编辑  收藏  举报