1. 程式人生 > 實用技巧 >Python學習20

Python學習20

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)