Python Redis 簡介

在這里插入圖片描述


Redis 是一個高性能的內存鍵值數據庫,支持多種數據結構(字符串、列表、哈希、集合等),常用于緩存、消息隊列和實時數據處理。Python 通過 redis-py 庫與 Redis 交互。


核心功能
  1. 內存存儲:數據存儲在內存中,讀寫速度極快(微秒級)
  2. 持久化選項:支持 RDB 快照和 AOF 日志兩種持久化方式
  3. 數據結構豐富
    • 字符串(Strings)
    • 哈希(Hashes)
    • 列表(Lists)
    • 集合(Sets)
    • 有序集合(Sorted Sets)
    • 流(Streams)
  4. 高可用:支持主從復制和 Redis Sentinel

Python 操作 Redis 示例

1. 安裝庫
pip install redis
2. 基礎操作
import redis# 連接Redis(默認localhost:6379)
r = redis.Redis()# 字符串操作
r.set("name", "Alice")          # 設置鍵值
print(r.get("name"))            # 輸出: b'Alice'(二進制格式)
print(r.get("name").decode())   # 輸出: Alice(轉為字符串)# 設置過期時間(30秒)
r.setex("temp_data", 30, "expiring soon")
3. 哈希操作(存儲對象)
# 存儲用戶信息
user_data = {"name": "Bob", "age": "28", "email": "bob@example.com"}
r.hset("user:1001", mapping=user_data)# 獲取字段
print(r.hget("user:1001", "name"))  # b'Bob'
print(r.hgetall("user:1001"))       # {b'name': b'Bob', b'age': b'28', ...}
4. 列表操作(消息隊列)
# 向左添加元素
r.lpush("tasks", "task1", "task2")  # 向右添加元素
r.rpush("tasks", "task3")         # 彈出元素
task = r.rpop("tasks")  # 獲取并移除最右側元素
print(task)  # b'task3'
5. 發布訂閱
# 發布者
r.publish("news_channel", "Breaking news!")# 訂閱者(需在另一個進程/線程運行)
pubsub = r.pubsub()
pubsub.subscribe("news_channel")
for message in pubsub.listen():if message["type"] == "message":print(message["data"])  # b'Breaking news!'
6. 管道操作(批量執行)
pipe = r.pipeline()
pipe.set("counter", 100)
pipe.incr("counter")  # +1
pipe.incrby("counter", 50)  # +50
result = pipe.execute()
print(result)  # [True, 101, 151]

典型應用場景

場景使用方式
緩存存儲數據庫查詢結果
會話存儲保存用戶登錄狀態
排行榜使用有序集合(Sorted Set)
限流系統INCR + EXPIRE 實現請求計數
實時消息推送發布訂閱模式

注意事項

  1. 內存管理:定期監控內存使用,避免溢出
  2. 持久化配置:根據需求選擇 RDB/AOF 或混合模式
  3. 連接池:使用連接池提升性能
    pool = redis.ConnectionPool(max_connections=10)
    r = redis.Redis(connection_pool=pool)
    
  4. 集群支持:大規模部署使用 Redis Cluster

官方文檔:redis-py 文檔
Redis 命令參考:Redis Commands

通過合理使用 Redis,可顯著提升 Python 應用的性能,尤其適合高并發讀寫場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85477.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85477.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mac安裝whistle代理抓包工具(支持mock)

工具地址:https://wproxy.org/whistle/ 1、 安裝nodejs環境 參考方法:https://github.com/nvm-sh/nvm 1)安裝 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash如圖,安裝成功 2)…

基于 mydumper 實現 MySQL 定期全量備份、恢復方案

一、Mydumper 工具介紹 mydumper 是一款社區開源的邏輯備份工具,由 C 語言編寫,與 MySQL 官方提供的 mysqldump 相比,它具有更高的性能和更多的功能,例如: ? 支持多線程導出數據,速度更快; ? 支持一致性備份; ? 支持將導出文件壓縮,節約空間; ? 支持多線程恢復;…

C++中,std::async 一個用于異步編程的工具

在C中&#xff0c;std::async 是一個用于異步編程的工具&#xff0c;它允許你在一個單獨的線程中執行任務&#xff0c;并返回一個 std::future 對象&#xff0c;通過這個對象可以獲取任務的結果或者檢查任務的狀態。 基本用法1 lambda 表達式 #include <iostream> #incl…

【Linux驅動開發 ---- 4_驅動開發框架和 API】

Linux驅動開發 ---- 4_驅動開發框架和 API 目錄 Linux驅動開發 ---- 4_驅動開發框架和 API&#x1f3af; 目標&#xff1a;&#x1f4cc; 1. Linux 設備模型&#xff08;Linux Device Model&#xff09;**設備模型的核心概念**&#xff1a; &#x1f4cc; 2. 設備樹&#xff08…

實景VR展廳建設流程

實景VR展廳&#xff1a;建設流程、用途、案例與未來發展 隨著虛擬現實&#xff08;VR&#xff09;技術的發展&#xff0c;實景VR展廳作為一種創新的展示方式&#xff0c;正在各個領域得到廣泛應用。實景VR展廳提供沉浸式的體驗&#xff0c;豐富展示內容和形式&#xff0c;為觀…

android下拉欄添加媒體音量調節

參考下拉欄的屏幕亮度調節&#xff0c;添加媒體音量調節。 平臺信息&#xff1a; MSM8909.LA.3.1.2_AOSP PLATFORM_VERSION9 BUILD_IDPKQ1.190903.001 效果圖 布局文件與音量圖標 Index: frameworks/base/packages/SystemUI/res/layout/quick_settings_media_volume_dialog.x…

VS Code 配置ROS2開發環境常見問題記錄

1、ctrlshiftp后找不到C/C: Edit configurations 安裝或重裝C插件。 參考鏈接&#xff1a; 搜索C/C: Edit configurations顯示no matching command問題https://www.cnblogs.com/hunghau/p/17195622.html 2、ROS2 API無法轉到定義 &#xff08;1&#xff09;在c_cpp_proper…

Docker Desktop搭建RocketMQ的完整教程

Docker Desktop搭建RocketMQ圖文教程 1. 準備工作 已安裝Docker Desktop&#xff08;本地安裝方法參考上一節教程&#xff09;。需部署三個組件&#xff1a;NameServer、Broker、Console&#xff08;管理界面&#xff09;。 2. 創建目錄和文件 在任意盤&#xff08;如D盤&am…

算法35天|1049. 最后一塊石頭的重量 II、 494. 目標和、 474.一和零

1049. 最后一塊石頭的重量 II 題目 思路與解法 class Solution { public:int lastStoneWeightII(vector<int>& stones) {int sum 0;for(int i0;i<stones.size();i){sum stones[i];}// 問題轉換為&#xff1a;// 先求得&#xff0c;背包容量為target時&#x…

AWS S3拒絕非https的請求訪問

問題 aws s3桶&#xff0c;安全要求必須強制使用ssl加密訪問&#xff0c;即https。需要添加一個策略拒絕所有不是https的訪問s3桶請求。 解決 在對于桶添加相關拒絕策略即可。如下&#xff1a; {"Version": "2012-10-17","Statement": [{&qu…

GitLab CVE-2025-4278 安全漏洞解決方案

本分分享極狐GitLab 補丁版本 18.0.2, 17.11.4, 17.10.8 的詳細內容。這幾個版本包含重要的缺陷和安全修復代碼&#xff0c;我們強烈建議所有私有化部署用戶應該立即升級到上述的某一個版本。對于極狐GitLab SaaS&#xff0c;技術團隊已經進行了升級&#xff0c;無需用戶采取任…

Async、await是什么?跟promise有什么區別?使用的好處是什么

Async/Await 與 Promise 的深度解析 一、基本概念 1. Promise Promise 是 ES6 引入的異步編程解決方案&#xff0c;表示一個異步操作的最終完成&#xff08;或失敗&#xff09;及其結果值。 function fetchData() {return new Promise((resolve, reject) > {setTimeout(…

MySQL數據庫中所有表的空間占用與行數統計

查看某個數據庫中所有表的空間與行數統計 SELECT TABLE_NAME AS 表名,TABLE_ROWS AS 行數,ROUND(DATA_LENGTH / 1024 / 1024, 2) AS 數據大小(MB),ROUND(INDEX_LENGTH / 1024 / 1024, 2) AS 索引大小(MB),ROUND((DATA_LENGTH INDEX_LENGTH) / 1024 / 1024, 2) AS 總占用空間(…

el-upload 點擊上傳按鈕前先判斷條件滿足再彈選擇文件框

解決思路&#xff1a; 先寫一個上傳按鈕&#xff0c;點擊上傳按鈕后判斷條件是否滿足&#xff0c;滿足則顯示上傳組件并使用ref來控制點擊事件&#xff0c;隱藏自身。 注&#xff1a;上傳成功或者上傳失敗時或者上傳前判斷條件添加不滿足return將this.isShow true 代碼部分…

django ReturnDict 如何修改內容

在Django中&#xff0c;QuerySet 對象通常用于從數據庫中檢索數據&#xff0c;并且可以被轉換為各種格式&#xff0c;例如字典。如果你想修改QuerySet返回的結果&#xff08;例如&#xff0c;將其轉換為dict&#xff09;&#xff0c;你可以在查詢執行后進行操作。這里有幾種常見…

密室出逃消消樂小游戲微信流量主小程序開源

這個密室出逃消消樂小游戲采用了微信小程序的標準目錄結構&#xff0c;包含以下核心功能&#xff1a; 游戲界面&#xff1a;6x6 的網格布局&#xff0c;隨機生成不同類型的物品 游戲邏輯&#xff1a;交換相鄰物品&#xff0c;消除三個或以上相同類型的物品 計分系統&#xff1a…

SmartMediaKit實戰經驗總結之高穩定、低延遲、強兼容

在萬物互聯與數字化加速融合的今天&#xff0c;音視頻實時通信技術正成為各行業發展的核心驅動力。從教育到工業、從安防到遠程醫療&#xff0c;毫秒級低延遲的音視頻交互體驗已成為新一代實時系統的“生命線”。而在這個領域&#xff0c;視沃科技旗下的大牛直播SDK&#xff08…

前端性能調優工具與指標

性能指標解析 核心Web指標 核心Web指標(Core Web Vitals)是Google定義的一組關鍵性能指標&#xff0c;直接影響用戶體驗和SEO排名&#xff1a; FCP (First Contentful Paint): 首次內容繪制&#xff0c;記錄頁面首次渲染任何文本、圖像、非白色畫布或SVG的時間點 優: < 1.…

LeeCode2294劃分數組使最大值為K

項目場景&#xff1a; 給你一個整數數組 nums 和一個整數 k 。你可以將 nums 劃分成一個或多個 子序列 &#xff0c;使 nums 中的每個元素都 恰好 出現在一個子序列中。 在滿足每個子序列中最大值和最小值之間的差值最多為 k 的前提下&#xff0c;返回需要劃分的 最少 子序列…

中國醫科大借iMeta影響因子躍升至33.2(中科院1區)東風,憑多組學聯合生信分析成果登刊

中國醫科大借iMeta影響因子躍升至33.2&#xff08;中科院1區&#xff09;東風&#xff0c;憑多組學聯合生信分析成果登刊 2025年6月18日&#xff0c;科睿唯安正式發布了2024年期刊的最新影響因子(發送關鍵詞 “2024JIF” 至 “生信學術縱覽”&#xff0c;即可下載完整版最新影…