亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Python中如何用Redis

發布時間:2021-11-27 18:49:18 來源:億速云 閱讀:425 作者:iii 欄目:關系型數據庫

本篇內容主要講解“Python中如何用Redis”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python中如何用Redis”吧!

Python中如何用Redis

前面我們都是使用 Redis 客戶端對 Redis 進行使用的,但是實際工作中,我們大多數情況下都是通過代碼來使用 Redis 的,由于小編對 Python 比較熟悉,所以我們今天就一起來學習下如何使用 Python 來操作 Redis

環境準備

  • Redis 首先需要安裝好。

  • Python 安裝好(建議使用 Python3)。

  • RedisPython 庫安裝好(pip install redis)。

開始實踐

小試牛刀

例:我們計劃通過 Python 連接到 Redis。然后寫入一個 kv,最后將查詢到的 v 打印出來。

直接連接

#!/usr/bin/python3

import redis   # 導入redis模塊

r = redis.Redis(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主機,password為認證密碼,redis默認端口是6379
r.set('name', 'phyger-from-python-redis')  # key是"name" value是"phyger-from-python-redis" 將鍵值對存入redis緩存
print(r['name'])  # 第一種:取出鍵name對應的值
print(r.get('name'))  # 第二種:取出鍵name對應的值
print(type(r.get('name')))

Python中如何用Redis

Python中如何用Redis

其中的 get 為連接池最后一個執行的命令。

連接池

通常情況下,需要連接 redis 時,會創建一個連接,基于這個連接進行 redis 操作,操作完成后去釋放。正常情況下,這是沒有問題的,但是并發量較高的情況下,頻繁的連接創建和釋放對性能會有較高的影響,于是連接池發揮作用。

連接池的原理:預先創建多個連接,當進行 redis 操作時,直接獲取已經創建好的連接進行操作。完成后,不會釋放這個連接,而是讓其返回連接池,用于后續 redis 操作!這樣避免連續創建和釋放,從而提高了性能!

#!/usr/bin/python3

import redis,time   # 導入redis模塊,通過python操作redis 也可以直接在redis主機的服務端操作緩存數據庫

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主機,需要redis服務端和客戶端都起著 redis默認端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-from-python-redis')
print(r['name'])
print(r.get('name'))  # 取出鍵name對應的值
print(type(r.get('name')))

Python中如何用Redis

你會發現,在實際使用中直連和使用連接池的效果是一樣的,只是在高并發的時候會有明顯的區別。

基操實踐

對于眾多的 Redis 命令,我們在此以 SET 命令為例進行展示。

格式: set(name, value, ex=None, px=None, nx=False, xx=False)

在 redis-py 中 set 命令的參數:

參數名釋義
ex<int>過期時間(m)
px<int>過期時間(ms)
nx<bool>如果為真,則只有 name 不存在時,當前 set 操作才執行
xx<bool>如果為真,則只有 name 存在時,當前 set 操作才執行

ex

我們計劃創建一個 kv 并且設置其 ex3,期待 3 秒后此 kv 會變為 None

#!/usr/bin/python3

import redis,time   # 導入redis模塊,通過python操作redis 也可以直接在redis主機的服務端操作緩存數據庫

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主機,需要redis服務端和客戶端都起著 redis默認端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-from-python-redis',ex=3)
print(r['name'])    # 應當有v
time.sleep(3)
print(r.get('name'))  # 應當無v
print(type(r.get('name')))

Python中如何用Redis

nx

由于 px 的單位太短,我們就不做演示,效果和 ex 相同。

我們計劃去重復 set 前面已經 set 過的 name,不出意外的話,在 nx 為真時,我們將會 set 失敗。但是人如果 set 不存在的 name1,則會成功。

#!/usr/bin/python3

import redis,time   # 導入redis模塊,通過python操作redis 也可以直接在redis主機的服務端操作緩存數據庫

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主機,需要redis服務端和客戶端都起著 redis默認端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-0',nx=3) # set失敗
print(r['name'])    # 應當不生效
r.set('name1', 'phyger-1',nx=3) # set成功
print(r.get('name1'))  # 應當生效
print(type(r.get('name')))

Python中如何用Redis

如上,你會發現 nameset 未生效,因為 name 已經存在于數據庫中。而 name1set 已經生效,因為 name1 是之前在數據庫中不存在的。

xx

我們計劃去重復 set 前面已經 set 過的 name,不出意外的話,在 nx 為真時,我們將會 set 成功。但是人如果 set 不存在的 name2,則會失敗。

#!/usr/bin/python3

import redis,time   # 導入redis模塊,通過python操作redis 也可以直接在redis主機的服務端操作緩存數據庫

pool = redis.ConnectionPool(host='localhost', port=6379, password="pwd@321", decode_responses=True)   # host是redis主機,需要redis服務端和客戶端都起著 redis默認端口是6379
r = redis.Redis(connection_pool=pool)
r.set('name', 'phyger-0',xx=3) # set失敗
print(r['name'])    # 應當變了
r.set('name2', 'phyger-1',xx=3) # set成功
print(r.get('name2'))  # 應當沒有set成功
print(type(r.get('name')))

Python中如何用Redis

到此,相信大家對“Python中如何用Redis”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

平顶山市| 安溪县| 华容县| 偃师市| 阿坝| 客服| 滦南县| 济宁市| 前郭尔| 屯门区| 青海省| 吴堡县| 濮阳县| 临清市| 潢川县| 大宁县| 陵川县| 韩城市| 石城县| 巴林左旗| 长顺县| 报价| 邵武市| 西宁市| 远安县| 石景山区| 广汉市| 高淳县| 紫云| 左云县| 达拉特旗| 平凉市| 台湾省| 阿尔山市| 永泰县| 讷河市| 樟树市| 冀州市| 孝义市| 泸溪县| 辽中县|