《Redis 入門指南:快速掌握高性能緩存技術》

目錄

一、準備工作

二、操作數據庫

2.1 切換數據庫

2.2 存儲和查看數據

一、存儲語法

二、一次性存儲多個鍵值對

三、追加值

四、查看值的類型

五、查詢值

六、一次查詢多個值

?七、查看當下數據庫所有的鍵

八、刪除鍵

九、查看 鍵 是否存在

十、重命名鍵

2.3 過期時間管理

2.4?列表(Lists)

2.5?集合(Set)

2.6?有序集合(Sorted Set)

2.7?哈希(Hash)

三、公共操作

四、redis與python交互?


一、準備工作

安裝redis非常簡單,只需要下載壓縮文件解壓即可

鏈接:redis-latest.rar官方版下載丨最新版下載丨綠色版下載丨APP下載-123云盤

提取碼:1024

下載完成后按照以下步驟開啟服務

第一步:先找到解壓的文件,可以選擇在該文件夾內的導航欄輸入cmd回車或者直接雙擊redis-server二選一打開終端

第二步:在終端輸入 redis-server 開啟服務

注意:這個窗口不能關閉

第三步:重開一個終端輸入 redis-cli? 【在導航欄輸入的cmd打開的終端】

然后就可以在這里操作 redis數據庫了?


二、操作數據庫

redis支持16個數據庫(自帶,不可減少或增加),編號從0到15,默認進入0號數據庫,redis是以鍵值對存儲的,與MySQL不同,沒有表格概念,區分大小寫

2.1 切換數據庫

select 數據庫編號  # 進入指定數據庫

例如:進入 2 號數據庫

select 1


2.2 存儲和查看數據

?一、存儲語法

設置鍵值對:set 鍵 值

set s1 lysir
set s2 零一先生

注意:存儲中文字符時,需在進入 Redis 時使用?redis-cli --raw,否則顯示亂碼,但存儲是成功的。

?二、一次性存儲多個鍵值對

語法:mset 鍵1 值1 鍵2 值2 ...

mset s3 AA s4 BB s5 CC

三、追加值

語法:append 鍵 追加的值

append s3 aa  # 結果變為 AAaa

四、查看值的類型

語法:type 鍵

type s1

五、查詢值

語法:get 鍵

get s1

六、一次查詢多個值

語法:mget 鍵1 鍵2 ...

mget s1 s3 s5

?七、查看當下數據庫所有的鍵

語法:keys *

八、刪除鍵

語法:del 鍵1 鍵2 ...

del s1 s3

九、查看 鍵 是否存在

語法:exists 鍵

返回值:存在返回?1,不存在返回?0

exists s2

十、重命名鍵

語法:rename 舊鍵 新鍵

rename s2 new_s1


2.3 過期時間管理

當鍵超過設定的時間之后就會自動失效刪除

  • 設置鍵的過期時間
    expire 鍵 時間(秒)

  • 查看鍵的剩余生存時間
    ttl 鍵
    返回值:

    • -2:鍵已過期

    • -1:鍵不存在或未設置過期時間

  • 取消鍵的過期時間
    persist 鍵


2.4?列表(Lists)

  • 特點:有序、可重復、動態(可在兩端添加)。

  • 1、從左邊插入數據
    lpush 列表鍵 值1 值2 ... 值

示例:

lpush L1 A B C D lysir

  • 2、從右邊插入數據
    rpush 列表鍵 值1 值2 ... 值N

示例:

rpush R1 E F G H lysir

3、查看列表內容
lrange 列表鍵 開始位置 結束位置

lrange L1 0 -1  # -1 表示到末尾

  • 從左邊刪除一個元素
    lpop 列表鍵

  • 從右邊刪除一個元素
    rpop 列表鍵

  • 刪除整個列表
    del 列表鍵

4、獲取指定索引的元素
lindex 列表鍵 索引

lindex R1 3

5、修改指定索引的元素值
lset 列表鍵 下標 值

lset L1 3 china


2.5?集合(Set)

  • 特點:無序、唯一、動態。

1、添加元素到集合
sadd 集合鍵 值1 值2 ... 值N
示例:

sadd set1 v1 v2 v3 v4 v5

2、查看集合中所有成員
smembers 集合鍵

smembers set1

3、檢查元素是否在集合中
sismember 集合鍵 值
返回值:存在返回?1,不存在返回?0

sismember set1 v6

4、刪除集合中的元素
srem 集合鍵 值1 值2 ...

srem set1 v1 v2 v5


2.6?有序集合(Sorted Set)

  • 特點:有序(有下標)、唯一、每個元素關聯一個分數(用于排序),動態。

1、添加元素到有序集合
zadd 鍵 分數1 值1 分數2 值2 ... 分數N 值N

zadd sset1 80 A 90 B 100 C 98 D 88 E

2、獲取有序集合的元素
zrange 鍵 起始下標 結束下標

zrange sset1 0 -1  # -1 表示到末尾

3、獲取有序集合的分數
zscore 鍵 值

zscore sset1 A

  • 4、獲取有序集合的元素及分數

    • 正序查看:
      zrange 鍵 起始下標 結束下標 withscores

    • zrange sset1 0 -1 withscores
    • 倒序查看:
      zrevrange 鍵 起始下標 結束下標 withscores

    • zrevrange?sset1 0 -1 withscores

  • 5、根據分數篩選查詢
    zrangebyscore 鍵 最小分數 最大分數

zrangebyscore sset1 80 90

6、修改指定成員的分數
zincrby 鍵 要修改的分數(正數是加 負數是減)? 值

zincrby sset1 200 B
zincrby sset1 -50 C

7、刪除有序集合中的元素
zrem 鍵 值1 值2 ... 值N

zrem sset1 A C D


?2.7?哈希(Hash)

  • 特點:鍵值對存儲(一個鍵對應多個值),無序、動態。

1、單個設置

語法:hset 哈希鍵 字段?值?

2、多個設置

hmset 哈希鍵 字段1 值1 字段2 值2 ...

hmset HXuser name zhou age 18 msg xxx

?3、獲取哈希表的值

  • 獲取單個值:
    hget 哈希鍵 字段

  • 獲取多個值:
    hmget 哈希鍵 字段1 字段2 ...

hmget HXuser name age msg

4、獲取哈希表所有 字段 及 值

  • 獲取所有值:
    hvals 哈希鍵

  • 獲取所有字段:
    hkeys 哈希鍵

  • 獲取所有鍵值:
    hgetall 哈希鍵

hgetall HXuser

5、檢查哈希表中是否存 在 某個字段

hexists 哈希鍵 字段
返回值:存在返回?1,不存在返回?0

hexists HXuser china

7、刪除哈希表 字段

hdel 哈希鍵 字段1 字段2 ...
返回值:實際刪除的字段數量。

hdel HXuser age msg


三、公共操作

  • 查看所有鍵
    keys *

  • 清空當前數據庫
    flushdb

  • 清空所有數據庫
    flushall
    注意:此操作不可逆,會清空所有 16 個數據庫的數據。

特別注意

  • Redis 數據默認存儲在內存中,服務關閉后數據會丟失。若需持久化存儲,請查閱相關文檔。


四、redis與python交互?

redis并不是內置模塊,所以需要先下載 redis 模塊

安裝Redis庫:?

pip install redis -i https://mirrors.aliyun.com/pypi/simple/

下面是python與redis交互演示代碼

# 1 導包
import redis
# 2建立連接
db_con = {'host':'127.0.0.1',  #主機'port':6379, # 端口'db':0   #連接哪個數據庫
}
# 3連接Ridis服務器(會返回一個連接對象)
r = redis.Redis(**db_con)
print(r)# 4對數據庫進行操作
# 設置鍵值對=> r.set('key1','value1')
#a.新增
r.set('name','tonny')
#b.查詢(獲取)
name = r.get('name')
print(name)#其他操作也都可以通過 r.出來(點出來)# 5最后記得關閉連接
r.close()

溫馨提示:

1,必須確保 redis 服務器正常開啟了,否則會連接失敗

2,redis 端口號可以在開啟服務器的界面查看

?

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

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

相關文章

跨部門溝通與團隊協作

【跨部門協作:破局之道在冰山之下】 感謝太原市組織部信任,上海財經大學邀約 今日為財務精英拆解《跨部門溝通與團隊協作》迷局。從本位思維到共同愿景,用因果回路圖透視沖突本質,當財務人開始用"延遲反饋"視角看預算博…

【零基礎到精通Java合集】第一集:Java開發環境搭建

以下是針對**“Java開發環境搭建”**的15分鐘課程內容設計,包含知識點拆分、實操演示與互動練習: 課程標題:Java開發環境搭建(15分鐘) 目標:完成JDK安裝、IDE配置并運行第一個Java程序 一、課程內容與時間分配 0-2分鐘 課程目標與前置準備 明確學習目標:JDK安裝、環境…

【JavaEE】wait 、notify和單例模式

【JavaEE】wait 、notify 和單例模式 一、引言一、wait()方法二、notify()方法三、notifyAll()方法四、wait()和sleep()對比五、單例模式5.1 餓漢模式5.2 懶漢模式5.2 懶漢模式-線程安全(改進) 博客結尾有此…

http報文的content-type參數和spring mvc傳參問題

很早之前博主聊過HTTP的報文結構以及其中和傳參相關的重要參數content-type還有spring mvc,以前的三篇文章: HTTP與HTTPS協議詳解:基礎與安全機制-CSDN博客 詳解Http的Content-Type_content-type application-CSDN博客 如何在Spring Boot中…

‘ts-node‘ 不是內部或外部命令,也不是可運行的程序

新建一個test.ts文件 let message: string = Hello World; console.log(message);如果沒有任何配置的前提下,會報錯’ts-node’ 不是內部或外部命令,也不是可運行的程序。 此時需要安裝一下ts-node。 npm install

《白帽子講 Web 安全:點擊劫持》

目錄 摘要: 一、點擊劫持概述 二、點擊劫持的實現示例:誘導用戶收藏指定淘寶商品 案例 構建惡意頁面: 設置絕對定位和z - index: 控制透明度: 三、其他相關攻擊技術 3.1圖片覆蓋攻擊與 XSIO 3.2拖拽劫持與數據…

基于機器學習的圖像分類綜述

圖像分類是計算機視覺和模式識別領域的核心任務之一,其目標是從輸入的圖像中自動識別并標注其所屬的類別標簽。基于機器學習的圖像分類技術近年來取得了顯著進展,尤其是在深度學習的推動下,性能得到了質的提升,并在多個實際應用中表現出色。 以下是對基于機器學習的圖像分…

SQL Server 中行轉列

在 SQL Server 數據庫中,行轉列在實踐中是一種非常有用,可以將原本以行形式存儲的數據轉換為列的形式,以便更好地進行數據分析和報表展示。本文將深入淺出地介紹 SQL Server 中的行轉列技術,并以數據表中的時間數據為例進行詳細講…

系統架構設計師—計算機基礎篇—系統性能評價

文章目錄 性能評價指標主頻CPU時鐘周期機器周期CPIMIPS 系統性能調整阿姆達爾解決方案性能優化數據庫應用系統Web應用系統 性能評估方法評價程序真實程序基準測試程序核心程序小型基準程序合成基準程序 基準測試程序組 評測準確度 性能指標計算機數據庫應用系統Web應用系統 性能…

web3.0簡介

Web3.0(或簡稱 Web3)是近年來廣泛討論的一個新型互聯網概念,其核心思想在于利用區塊鏈及相關分布式技術,打造一個更加開放、去中心化、透明且以用戶為主導的網絡生態系統。這意味著在 Web3.0 時代,用戶不再只是信息的消…

python第十一課:并發編程 | 多任務交響樂團

🎯 本節目標 理解多線程/多進程/協程的應用場景掌握threading與multiprocessing核心用法學會使用asyncio進行異步編程開發實戰項目:高并發爬蟲引擎破解GIL鎖的性能迷思 1?? 并發編程三劍客 🎻 生活化比喻: 多線程 → 餐廳多個…

微服務架構實踐:SpringCloud與Docker容器化部署

## 微服務架構實踐:SpringCloud與Docker容器化部署 隨著互聯網應用的復雜性不斷增加,傳統的單體應用架構面臨著諸多挑戰,如難以部署、維護困難、開發效率低下等問題凸顯出來。為了解決這些問題,微服務架構應運而生,它通…

SpringBoot實戰(三十二)集成 ofdrw,實現 PDF 和 OFD 的轉換、SM2 簽署OFD

目錄 一、OFD 簡介 1.1 什么是 OFD?1.2 什么是 版式文檔?1.3 為什么要用 OFD 而不是PDF? 二、ofdrw 簡介 2.1 定義2.2 Maven 依賴2.3 ofdrw 的 13 個模塊 三、PDF/文本/圖片 轉 OFD(ofdrw-conterver) 3.1 介紹&#xf…

隨機樹算法 自動駕駛汽車的路徑規劃 靜態障礙物(Matlab)

隨著自動駕駛技術的蓬勃發展,安全、高效的路徑規劃成為核心挑戰之一。快速探索隨機樹(RRT)算法作為一種強大的路徑搜索策略,為自動駕駛汽車在復雜環境下繞過靜態障礙物規劃合理路徑提供了有效解決方案。 RRT 算法基于隨機采樣思想…

Vscode通過Roo Cline接入Deepseek

文章目錄 背景第一步、安裝插件第二步、申請API key第三步、Vscode中配置第四步、Deepseek對話 背景 在前期介紹【IDEA通過Contince接入Deepseek】步驟和流程,那如何在vscode編譯器中使用deepseek,記錄下來,方便備查。 第一步、安裝插件 在…

C++ 二叉樹代碼

二叉樹代碼&#xff0c;見下 #include <iostream> using namespace std;template<typename T> struct TreeNode{T val;TreeNode *left;TreeNode *right;TreeNode():val(0), left(NULL), right(NULL)TreeNode(T x):val(x), left(NULL), right(NULL){} };template&l…

leetcode第17題求電話號碼組合

原題出于leetcode第17題https://leetcode.cn/problems/letter-combinations-of-a-phone-number/description/題目如下&#xff1a; 題目稍微有點復雜&#xff0c;初看會感覺特別復雜&#xff0c;首先我們需要理清思路&#xff1a; 最后的結果是字母組合&#xff0c;因此遍歷的是…

Deepseek對ChatGPT的沖擊?

從測試工程師的視角來看&#xff0c;DeepSeek對ChatGPT的沖擊主要體現在**測試場景的垂直化需求與通用模型局限性之間的博弈**。以下從技術適配性、效率優化、風險控制及未來趨勢四個維度展開分析&#xff1a; --- ### **一、技術適配性&#xff1a;垂直領域能力決定工具選擇…

三十五周學習周報

目錄 摘要abstract文獻閱讀1.1相關知識1.1.1 PSO1.1.2 BI-LSTM1.1.3 BI-GRU 1.2 整體框架1.3 實驗分析 總結 摘要 在本周閱讀的文獻中&#xff0c;作者提出了一種創新的水文時間序列預測模型&#xff0c;其通過將粒子群優化&#xff08;PSO&#xff09;與Bi-LSTM和Bi-GRU相結合…

Git:多人協作

目錄 多人協作一 準備工作 開發者1準備工作 開發者2準備工作 協作開發 將內容合并進master 多人協作二 開發者1進行工作 開發者2進行工作 特殊場景 將內容合并進master 之前所學習的Git操作&#xff0c;是為了多人協作開發做鋪墊的&#xff0c;因為在公司中&#xf…