Redis : Hash類型

哈希類型?

哈希類型的命令

hset

設置key指定的字段(field)的值(value)?

也可以設置多組field和value

hget?

獲得哈希中指定字段的值

如果該字段為空或者key為空則返回nil

hexists

判斷哈希中是否有該字段的值

如果有則會返回1,否則返回0

?

hdel

刪除哈希中該字段對應的值

返回本次刪除的字段個數

也可以一次刪除多個哈希中的字段

hkeys

獲得哈希中的全部字段

hvals

獲得哈希中的所有值

hgetall

獲得哈希中的全部字段和全部的值

hmget

一次性獲得哈希中的多個字段

hlen

獲得哈希中所有字段的個數

hstrlen

獲得哈希中字段的長度

hsetnx

字段不存在下,設置哈希中的字段和值

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

hincrby

對哈希中對應字段的值添加指定的值(+/-)

hincrfloat

對哈希中的字段中的值進行浮點數運算

?

注:如果只對單個的字段進行命令作用,時間復雜度為O(1),否則是O(N)N為字段(field)的個數

帶H的命令必須保證作用的是哈希類型

內部編碼

哈希的內部編碼一共有兩種:ziplist(壓縮列表)和hashtable(哈希表)

當field的個數較少,并且沒有特別大的value,內部編碼為ziplist,否則會自動轉換為hashtable

壓縮的本質,是對數據進行重新編碼

可以再redis的配置文件中修改默認的配置(ziplist -> hashtable)

?

使用場景

用戶信息的保存

關系型數據庫保存用戶信息

userIduesrNameage
1zhangsan2
2lisi3

映射關系表示用戶信息

相?于使?JSON格式的字符串緩存用戶信息,哈希類型變得更加直觀,并且在更新操作上變得更靈活。

作為緩存

如果使用String(json)的格式表示UserInfo

  • 只是想獲取某個field,或者修改某個field
  • 就需要把整個json都讀出來,操作field,轉成json字符串,再寫回去

如果用哈希的方式表示UserInfo

  • 就可以使用field表示對象的屬性
  • 此時修改和獲取任何一個屬性就會十分的方便

注:使用hash進行field的讀取和修改,確實是十分的方便,但是會使其內部編碼再ziplist和hashtable中進行切換,造成內存的消耗

?

希望能對大家有所幫助!!!!!!!

?

?

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

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

相關文章

【Chipyard】 conda 環境安裝與使用

一、Conda 安裝(以 Miniconda 為例) Conda 是一個強大的環境管理工具,可用于創建、隔離和管理不同的 Python/R 環境。以下是在 Ubuntu 上安裝和使用的完整流程: 1. 下載 Miniconda 安裝包 bash # 下載最新版 Miniconda3&#…

【愚公系列】《生產線數字化設計與仿真》009-顏色分類站仿真(設置顏色分類站的仿真序列)

🌟【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】🌟 📣開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! &#x1f…

ios 26官宣:car play升級提升車載體驗

蘋果公司正式官宣推出ios 26,該版本為ios 18的后續版本。此次軟件更新在命名上煥然一新,設計層面更是實現了全面革新。其中,car play界面迎來全新升級,同時還新增了car play ultra功能。借助這一功能,用戶不僅能夠使用…

Mac 上使用 mysql -u root -p 命令,出現“zsh: command not found: mysql“?如何解決

一、確定 MySQL 安裝路徑: 如果你是使用 Homebrew 安裝的 MySQL,通常安裝路徑是 /usr/local/mysql/bin 如果你是通過官方 DMG 安裝包安裝的 MySQL,默認安裝路徑可能是 /usr/local/mysql/bin 你可以在終端中使用以下命令來查找 MySQL 的安裝…

微軟PowerBI考試 PL300-使用適用于 Power BI 的 Copilot 創建交互式報表

微軟PowerBI考試 PL300-使用適用于 Power BI 的 Copilot 創建交互式報表 Microsoft Power BI 可幫助您通過交互式報表準備數據并對數據進行可視化。 如果您是 Power BI 的新用戶,可能很難知道從哪里開始,并且創建報表可能很耗時。 通過適用于 Power BI …

Android11三網共存

一、優先級基本知識介紹 Android6.0之后系統中優先級設置都是根據Score分值來設置優先級,分值0-100,數值越高,越優先。 SIM卡網絡 50 wifi網絡 60 有線網絡 70手機網絡設置都有自己的Factory設置類,都繼承自NetworkFactory.j…

【散刷】二叉樹基礎OJ題(三)

📝前言說明: 本專欄主要記錄本人的基礎算法學習以及刷題記錄,使用語言為C。 每道題我會給出LeetCode上的題號(如果有題號),題目,以及最后通過的代碼。沒有題號的題目大多來自牛客網。對于題目的…

什么是數據交換?有哪些數據交換方式?

目錄 一、數據交換是什么 二、數據交換面臨的挑戰 1. 數據格式差異 2. 數據標準不統一 3. 安全與隱私問題 4. 網絡與性能問題 三、常見的數據交換方式 1. 文件交換 2. 數據庫直連 3. 中間件交換 4. API接口交換 四、數據交換的發展趨勢 1. 實時性要求提高 2. 標準…

C#winform畫圖代碼記錄

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace 坐標變換 {public partial class Fo…

python打卡day50

import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 定義通道注意力 class ChannelAttention(nn.Module):def __i…

Go語言多線程問題

打印零與奇偶數(leetcode 1116) 方法1:使用互斥鎖和條件變量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…

ateⅹⅰt()的用法

在C/C++中, atexit() 函數用于注冊程序退出時需要調用的函數,即使程序通過 main() 函數返回、 exit() 函數退出或異常終止,這些注冊的函數也會被執行。以下是其詳細用法: 1. 函數原型與頭文件 #include <cstdlib> // C++中需包含此頭文件 int atexit(void (*functio…

【大模型】 使用llama.cpp 進行模型轉換和量化

目錄 1 相關知識 ■llama.cpp ■GGUF 格式 ■量化 2 詳細步驟 克隆 llama.cpp 倉庫 安裝依賴 配置 CMake 構建 構建項目 驗證安裝 轉換 safetensors 為 FP16 GGUF 量化模型 (Q4_K_M) 測試量化模型 1 相關知識 ■llama.cpp llama.cpp是一個開源的 C/C++ 庫,旨…

大數據學習(133)-Hive數據分析2

????&#x1f34b;&#x1f34b;大數據學習&#x1f34b;&#x1f34b; &#x1f525;系列專欄&#xff1a; &#x1f451;哲學語錄: 用力所能及&#xff0c;改變世界。 &#x1f496;如果覺得博主的文章還不錯的話&#xff0c;請點贊&#x1f44d;收藏??留言&#x1f4…

IDEA 連接 Docker 一鍵打鏡像

首先&#xff0c;檢查 IDEA 是否安裝了 Docker 插件&#xff1a; 版本比較新的 IDEA 默認都安裝了這個插件&#xff0c;如果沒有安裝&#xff0c;安裝一下。 確保我們虛擬機上安裝了 Docker 和 Docker-compose&#xff0c;并啟動了 Docker。 找到 IDEA 下方的 Services tab 欄…

第六講——一元函數微分學的應用之中值定理、微分等式與微分不等式

文章目錄 連續函數性質定理定理1 有界與最值定理定理2 介值定理定理3 平均值定理定理4 零點定理定理5 費馬定理導數介值定理(達布定理) 中值定理羅爾定理拉格朗日中值定理柯西中值定理泰勒公式 討論方程的根問題——微分等式證明不等式問題使用函數的性質(單調性、凹凸性、最值…

2025.06.11【Ribo-seq】|用CPAT預測sORF序列的編碼潛能

文章目錄 前言一、準備工作1. 安裝CPAT2. 下載物種特異性模型 二、準備sORF核酸序列1. 獲取sORF的拼接核酸序列示例腳本&#xff08;假設已獲得外顯子fasta&#xff09;&#xff1a; 三、運行CPAT預測編碼潛能1. 準備CPAT模型和hexamer表2. 運行CPAT 四、結果解讀五、常見問題與…

Hive面試題匯總

一、hive架構相關 遇到這類問題&#xff0c;可以靈活的去回答&#xff0c;比如可以結合平時使用hive的經驗作答&#xff0c;也可以結合下圖從數據的讀入、解析、元數據的管理&#xff0c;數據的存儲等角度回答&#xff1a; 二、hive的特點 本題主要為了考察對hive的整體使用…

樹莓派超全系列教程文檔--(57)如何設置 Apache web 服務器

如何設置 Apache web 服務器 設置 Apache web 服務器安裝 Apache測試 web 服務器更改默認網頁 為 Apache 安裝 PHP 文章來源&#xff1a; http://raspberry.dns8844.cn/documentation 原文網址 設置 Apache web 服務器 Apache 是一款流行的 web 服務器應用程序&#xff0c;您…

(九)現代循環神經網絡(RNN):從注意力增強到神經架構搜索的深度學習演進

現代循環神經網絡的內容&#xff0c;將介紹幾種先進的循環神經網絡架構&#xff0c;包括門控循環單元&#xff08;GRU&#xff09;、長短期記憶網絡&#xff08;LSTM&#xff09;的變體&#xff0c;以及注意力機制等。這些內容將幫助你更深入地理解循環神經網絡的發展和應用。 …