Redis中hash類型的操作命令(命令的語法、返回值、時間復雜度、注意事項、操作演示)

文章目錄

  • 字符串和哈希類型相比
  • hset 命令
  • hget 命令
  • hexists
  • hdel
  • hkeys
  • hvals
  • hgetall
  • hmget
  • hlen
  • hsetnx
  • hincrby
  • hincrbyfloat

字符串和哈希類型相比

假設有以下一種場景:現在要在 Redis 中存儲一個用戶的基本信息(id=1、name=zhangsan、age=17),下圖表示使用字符串類型進行存儲和使用哈希類型進行存儲的區別:

在這里插入圖片描述

注意:在 Redis 中,“鍵” 稱為 key,“值” 稱為 value,如果value 的類型是哈希類型,則 “鍵” 稱為 field,“值” 稱為 value

在這里插入圖片描述

hset 命令

設置 hash 中指定 “鍵”(field) 的值

語法:hset key field value [field value……]

返回值:添加的 field-value 的個數

時間復雜度:O(k),因為插入時,可以插入多個,所以,k 表示插入的鍵值對(field-value) 的個數

操作演示:

在這里插入圖片描述

hget 命令

獲取 hash 中指定 “鍵”(field) 的值

語法:hget key field

返回值:指定鍵(field)的值

時間復雜度:O(1)

操作演示:

在這里插入圖片描述

hexists

判斷 hash 中是否存在指定的 field

語法:hexists key field

返回值:1 表示存在,0 表示不存在

時間復雜度:O(1)

操作演示:

在這里插入圖片描述

hdel

刪除 hash 中指定的鍵(field)

語法:hdel key filed [filed……]

返回值:成功刪除field的個數

時間復雜度:O(k),k 表示刪除的鍵值對(field-value) 的個數

操作演示:

在這里插入圖片描述

hkeys

獲取哈希中所有的 field

語法:hkeys key

返回值:所有的鍵(field)

時間復雜度:O(N)

操作演示:

在這里插入圖片描述

注意:這個操作要慎重使用,因為,如果field非常多話,那么就可能會造成 Redis 服務器阻塞

hvals

獲取哈希中所有鍵(field)的值

語法:hvals key

返回值:所有的字段的值

時間復雜度:O(N),N表示field個數

操作演示:

在這里插入圖片描述

注意:這個操作要慎重使用,因為,如果field非常多話,那么就可能會造成 Redis 服務器阻塞

hgetall

獲取 hash 中所有的字段(field)及其對應的值

語法:hgetall key

返回值:所有的字段及其值

時間復雜度:O(N)

操作演示:

在這里插入圖片描述

注意:返回值是一個字段一個值相對著,同時呢,這也是個危險的操作,如果字段特別多的情況下,就可能使 Redis 阻塞

hmget

一次獲取 hash 中多個字段(field)的值

語法:hmget key field [field……]

返回值:指定字段的值

時間復雜度:O(k),k為指定的字段的數量

操作演示:

在這里插入圖片描述

hlen

獲取哈希中字(field)段的個數

語法:hlen key

返回值:字段的個數

時間復雜度:O(1),這里的個數不需要遍歷計算,在內部有一個變量存儲了元素個數

操作演示:

在這里插入圖片描述

hsetnx

在字段不存在的情況下,設置字段和值

語法:hsetnx key field value

返回值:0 表示設置失敗,1 表示設置成功

時間復雜度:O(1)

操作演示:

在這里插入圖片描述

hincrby

將 hash 中字段(field)對應的值添加指定的值

語法:hincrby key field num

返回值:返回添加成功后的值

時間復雜度:O(1)

操作演示:

在這里插入圖片描述

hincrbyfloat

hincrby 的浮點數版本,如果 field 的值是浮點數,對浮點數進行加減時,使用該命令。

語法:hincrbyfloat key field num

返回值:返回添加成功后的值

時間復雜度:O(1)

操作演示:

在這里插入圖片描述

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

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

相關文章

2024護網整體工作預案示例

目錄 第1章 HW整體工作工作部署 1.1 工作組織架構 1.2 各部門工作職責 1.3 演練期間工作機制 1.3.1 工作匯報機制 1.3.2 應急響應機制 第2章 系統資產梳理整改 2.1 敏感信息梳理整改 2.2 互聯網資產發現 2.3 第三方供應商梳理 2.4 業務連接單位梳理 第3…

下載nginx搭建的文件服務器(爬蟲)

下載nginx搭建的文件服務器(爬蟲) windows版 需要下載python包:pip install requests import requests import re import os#開始訪問的url地址,必須以/結尾 index_url "https://www.aaa.com/aaaaa/" #下載到本地的地…

win10顯示毫秒-上午-下午及星期幾,24小時制

關于毫秒 winr regedit 計算機\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced 新建ShowSecondsInSystemClock,編輯1顯示,不顯示就刪了它 然后重啟 資源管理器可能有多個全部重啟,就可以啦 根據自己喜好…

黨建科普3D數字化展館支持實時更新迭代

3D虛擬策展逐漸成為新時代下的主流方式,深圳華銳視點作為專業的web3d開發公司,具有專業化的3D數字化空間還原能力,能根據企業/個人不同需求和預算,為您打造純線上虛擬3D藝術展,讓您徹底擺脫實體美術館的限制&#xff0…

面試官:Java文件是如何被加載到內存中的?

面試連環call Java文件是如何被加載到內存中的?Java類的聲明周期都有哪些階段?JVM加載的class文件都有哪些來源?JVM在加載class文件時,何時判斷class文件的格式是否符合要求? 類生命周期 一個類從被加載到虛擬機內存…

【計算機體系結構】緩存的false sharing

在介紹緩存的false sharing之前,本文先介紹一下多核系統中緩存一致性是如何維護的。 目前主流的多核系統中的緩存一致性協議是MESI協議及其衍生協議。 MESI協議 MESI協議的4種狀態 MESI協議有4種狀態。MESI是4種狀態的首字母縮寫,緩存行的4種狀態分別…

【Linux】—Xshell、Xftp安裝

文章目錄 前言一、下載Xshell、Xftp二、安裝Xshell三、使用XShell連接Linux服務器四、修改windows的主機映射文件(hosts文件)五、遠程連接hadoop102/hadoop103/hadoop104服務器六、安裝Xftp 前言 XShell遠程管理工具,可以在Windows界面下來訪…

[數據集][目標檢測]螺絲螺母檢測數據集VOC+YOLO格式2400張2類別

數據集格式:Pascal VOC格式YOLO格式(不包含分割路徑的txt文件,僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數):2400 標注數量(xml文件個數):2400 標注數量(txt文件個數):2400 標注…

SpringBoot 整合 Minio 實現文件切片極速上傳技術

Centos7安裝Minio 創建目標文件夾 mkdir minio使用docker查看目標鏡像狀況 大家需要注意,此處我們首先需要安裝docker,對于相關安裝教程,大家可以查看我之前的文章,按部就班就可以,此處不再贅述!&#x…

uniapp入門

一、新建項目 進入到主界面,左上角點擊新建——1.項目 輸入項目名稱,Vue版本選擇3 二、創建頁面 選中左側文件目錄里的pages文件夾,右鍵,選擇新建頁面 1輸入名稱 2選中“創建同名目錄” 3選擇模板&…

將json對象轉為xml進行操作屬性

將json對象轉為xml進行操作屬性 文章目錄 將json對象轉為xml進行操作屬性前端發送json數據格式寫入數據庫格式-content字段存儲(varchar(2000))Question實體類-接口映射對象QuestionContent 接收參數對象DAO持久層Mapper層Service層Controller控制層接收…

《每天5分鐘用Flask搭建一個管理系統》第13章:性能優化

第13章:性能優化 13.1 性能優化的重要性 性能優化確保應用能夠處理高并發請求,減少響應時間,提高用戶體驗和應用的可擴展性。 13.2 Flask緩存機制 緩存是提高Web應用性能的關鍵技術之一,它可以減少數據庫查詢次數和服務器計算…

Java 開發環境配置

配置Java開發環境涉及幾個主要步驟,包括安裝Java Development Kit (JDK)、配置環境變量和選擇集成開發環境(IDE)。以下是詳細的配置步驟: ### 1. 安裝 Java Development Kit (JDK) 1. **下載 JDK**: 訪問 Oracle …

完全指南:在Linux上安裝和精通Conda

前言 Conda是一個強大的包管理和環境管理工具,特別適用于數據科學和機器學習項目。本文將詳細指導你在Linux系統上安裝、配置和充分利用Conda的方法。 步驟一:下載和安裝Conda 下載安裝包: wget https://repo.anaconda.com/miniconda/Minic…

普元EOS學習筆記-低開實現圖書的增刪改查

前言 在前一篇《普元EOS學習筆記-創建精簡應用》中,我已經創建了EOS精簡應用。 我之前說過,EOS精簡應用就是自己創建的EOS精簡版,該項目中,開發者可以進行低代碼開發,也可以進行高代碼開發。 本文我就記錄一下自己在…

Golang中swtich中如何強制執行下一個代碼塊

switch 語句中的 case 代碼塊會默認帶上 break,但可以使用 fallthrough 來強制執行下一個 case 代碼塊。 package mainimport ("fmt" )func main() {isSpace : func(char byte) bool {switch char {case : // 空格符會直接 break,返回 false…

2024年6月 | deepin 深度應用商店-應用更新記錄

新增應用 序號應用名稱depein 系統版本應用分類應用類型1bkViewer 照片瀏覽器deepin 20.9 deepin V23網絡應用wine291助手deepin 20.9 deepin V23編程開發wine3風云CAD轉換器deepin 20.9 deepin V23編程開發wine4Disk Savvydeepin 20.9 deepin V23系統工具wine5飛貓盤…

miniconda3 安裝jupyter notebook并配置網絡訪問

由于服務器安裝的miniconda3,無jupyter notebook,所以手工安裝jupyter notebook 1 先conda 安裝相關包 在base 環境下 conda install ipython conda install jupyter notebook 2 生成配置文件 jupyter notebook --generate-config Writing defaul…

Nginx 常用配置與應用

Nginx 常用配置與應用 官網地址:https://nginx.org/en/docs/ 目錄 Nginx 常用配置與應用 Nginx總架構 正向代理 反向代理 Nginx 基本配置反向代理案例 負載均衡 Nginx總架構 進程模型 正向代理 反向代理 Nginx 基本配置反向代理案例 負載均衡 Nginx 基本配置…

新人程序員接手丑陋的老代碼怎么辦?改還是不改......

許多小伙伴在初入職場的時候,都會遇到要接手老代碼的情況,那么問題來了,如果老代碼十分丑陋,你是改還是不改? 不改吧,心里難受;改吧,指不定會遇到什么情況,比如…… 1.…