中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python操作redis使用連接池的方法

發布時間:2020-08-13 13:48:15 來源:億速云 閱讀:1076 作者:小新 欄目:編程語言

小編給大家分享一下Python操作redis使用連接池的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

redis 連接池

redis是一個key-value存儲系統,和memcached類似,支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set-有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集和差集及更豐富的操作,而且這些操作都說原子性的。在此基礎上,redis支持各種不同的方式排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現了master-slave(主從)同步。

python 操作redis,未使用連接池:

redis-py提供兩個Redis和StrictRedis用于實現Redis的命令,StrictRedis用于實現大部分官方的命令,并使用官方的語法和命令,Redis是StrictRedis的子類,用于向后兼容舊版本的redis-py。

import redis
db = 0
#連接redis,password不簡寫(否則或報錯),db若不寫,則默認操作db0
conn_redis = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=db)
#給redis添加值,傳值方式是key-value,key不可重復,value的形式盡量是string,也可以傳list、字典,redis內存放的是字節res = conn_redis.set('name', 'testredis')
#print(res)    #返回值是布爾類型,set成功,則返回true
conn_redis.set('days', '[10,4,5,12,44]')
#set key值到redis內,且可以設置過期時間,10s
result = conn_redis.setex('session', 'abcder1233@sdfrr', 10)   #單位是s
print(result)   #返回值是布爾類型,set成功,則返回true
#批量插入redis,可以寫入多個key-valye
conn_redis.mset(a='xiaohei', b='xiaobai', c='xiaohuang') 
#設置key時,可以設置文件夾,user文件夾,key:test,value:haha
conn_redis.set('user:test','haha')

python 操作redis,使用連接池:

redis-py使用connection pool來管理對一個redis server的所有連接,避免每次建立、釋放連接的開銷。默認,每個Redis實例都會維護一個自己的連接池。可以直接建立一個連接池,然后作為參數Redis,這樣就可以實現多個Redis實例共享一個連接池。

def getcoon():
      pool = redis.ConnectionPool(host='192.168.1.112', port=6379, password='123456', db=0)
      coon = redis.Redis(connection_pool=pool)
      coon.set('key', 'value')
      res = coon.get('key')
      return res

redis 使用連接池操作

class OPRedis(object):
    def __init__(self):
        if not hasattr(OPRedis, 'pool'):
            OPRedis.getRedisCoon()  #創建redis連接
        self.coon = redis.Redis(connection_pool=OPRedis.pool)
    @staticmethod
    def getRedisCoon():
        OPRedis.pool = redis.ConnectionPool(host=redisInfo['host'], password=redisInfo['password'], port=redisInfo['port'], db=redisInfo['db'])
    """
    string類型 {'key':'value'} redis操作
    """
    def setredis(self, key, value, time=None):
        #非空即真非0即真
        if time:
            res = self.coon.setex(key, value, time)
        else:
            res = self.coon.set(key, value)
        return res
    def getRedis(self, key):
        res = self.coon.get(key).decode()
        return res
    def delRedis(self, key):
        res = self.coon.delete(key)
        return res
    """
    hash類型,{'name':{'key':'value'}} redis操作
    """
    def setHashRedis(self, name, key, value):
        res = self.coon.hset(name, key, value)
        return res
    def getHashRedis(self, name, key=None):
        # 判斷key是否我為空,不為空,獲取指定name內的某個key的value; 為空則獲取name對應的所有value
        if key:
            res = self.coon.hget(name, key)
        else:
            res = self.coon.hgetall(name)
        return res
    def delHashRedis(self, name, key=None):
        if key:
            res = self.coon.hdel(name, key)
        else:
            res = self.coon.delete(name)
        return res

redisInfo配置

redisInfo = {
    "host": '192.168.1.112',
    "password": '123456',
    "port": 6379,
    "db": 0
}

創建test,測試redis連接

if __name__ == '__main__':
    opr = OPRedis()
    res = opr.setredis('two', '哈哈')
    res = opr.getRedis('two')
    print(res)

以上是Python操作redis使用連接池的方法的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

原阳县| 阳曲县| 罗山县| 大英县| 长海县| 大宁县| 葵青区| 连南| 潜江市| 正阳县| 潞城市| 宜州市| 大丰市| 久治县| 宁德市| 云安县| 清苑县| 敖汉旗| 瓦房店市| 肥城市| 大冶市| 洛扎县| 措美县| 镇远县| 施秉县| 饶平县| 丰顺县| 屏山县| 汉源县| 兖州市| 龙岩市| 大连市| 米林县| 清流县| 台中市| 嘉祥县| 叶城县| 进贤县| 湄潭县| 滁州市| 周至县|