Redis 小白指南(二)- 聊聊五大類型:字元串、散列、列表、集合和有序集合

来源:http://www.cnblogs.com/liqingwen/archive/2017/06/01/6919308.html
-Advertisement-
Play Games

Redis 小白指南(二)- 聊聊五大類型:字元串、散列、列表、集合和有序集合 引言 開篇《Redis 小白指南(一)- 簡介、安裝、GUI 和 C# 驅動介紹》已經介紹了 Redis 的安裝、GUI 和 C# 驅動等基本知識,這一篇主要是梳理一下 Redis 的 5 種類型的信息與指令。 目錄 字 ...


Redis 小白指南(二)- 聊聊五大類型:字元串、散列、列表、集合和有序集合

引言

  開篇《Redis 小白指南(一)- 簡介、安裝、GUI 和 C# 驅動介紹》已經介紹了 Redis 的安裝、GUI 和 C# 驅動等基本知識,這一篇主要是梳理一下 Redis 的 5 種類型的信息與指令。

 

目錄

  • 字元串類型(String)
  • 散列類型(Hash)
  • 列表類型(List)
  • 集合類型(Set)
  • 有序集合類型(SortedSet)
  • 其它命令

 

字元串類型(String)

  1.介紹:

  字元串類型是 Redis 中最基本的數據類型,可以存儲二進位數據、圖片和 Json 的對象。

  字元串類型也是其他 4 種資料庫類型的基礎,其它數據類型可以說是從字元串類型中進行組織的,如:列表類型是以列表的形式組織字元串,集合類型是以集合的形式組織字元串。

  

  2.命令:

  【備註】包括 INCR 在內的所有 Redis 命令都是原子操作。

 

  3.命令測試:

圖:簡單的命令測試

 

  4.命名:

  建議:“對象類型:對象ID:對象屬性”命名一個鍵,如:“user:1:friends”存儲 ID 為 1 的用戶的的好友列表。對於多個單詞則推薦使用 “.” 進行分隔。

 

  5.應用:

  (1)訪問量統計:每次訪問博客和文章使用 INCR 命令進行遞增;

  (2)將數據以二進位序列化的方式進行存儲。

  

散列類型(Hash)

  1.介紹:

  散列類型採用了字典結構(k-v)進行存儲。

  散列類型適合存儲對象。可以採用這樣的命名方式:對象類別和 ID 構成鍵名,使用欄位表示對象的屬性,而欄位值則存儲屬性值。如:存儲 ID 為 2 的汽車對象。

 

  2.命令:

 

  3.命令測試:

圖:簡單的命令測試

 

  4.應用:

  (1)文章內容存儲:

 

列表類型(List)

  1.介紹:

  列表類型(list)可以存儲一個有序的字元串列表,常用的操作是向兩端添加元素。

  列表類型內部是使用雙向鏈表實現的,也就是說,獲取越接近兩端的元素速度越快,代價是通過索引訪問元素比較慢。

 

  2.命令:

 

  3.命令測試:

  【解析】向列表的左邊添加元素“1”,再依次加入“2”、“3”

  然後:

  在列表的右邊依次加入兩個元素“0”、“-1”:

 

  4.應用:

  (1)顯示社交網站的新鮮事、熱門評論和新聞等;

  (2)當隊列使用;

  (3)記錄日誌。

 

集合(Set)

  1.介紹:  

  字元串的無序集合,不允許存在重覆的成員。

  多個集合類型之間可以進行並集、交集和差集運算。

 

  2.命令:

 

  3.圖解交、並、差集:

 

  4.命令測試:

  

  5.應用:

  (1)文章標簽。

 

有序集合(SortedSet)

  1.介紹:

  在集合類型的基礎上添加了排序的功能。

 

  2.命令:

 

  3.命令測試:  

 

 

  4.應用:

  (1)點擊量排序

 

其它命令

  1.獲得符合規則的鍵名列表

KEYS pattern

  pattern 支持 glob 風格通配符:

 

  2.判斷一個鍵是否存在

EXISTS key

  如果鍵存在則返回整數類型 1,否則返回 0

 

  3.刪除鍵

DEL key [key ...]

  可以刪除一個或者多個鍵,返回值是刪除的鍵的個數

 

  4.獲得鍵值的數據類型

TYPE key

 

  這裡只是進行了一些命令的整理,具體的使用很多時候還是需要自己進行到官方文檔進行學習和搜索。

 

系列

  《Redis 小白指南(一)- 簡介、安裝、GUI 和 C# 驅動介紹

  《Redis 小白指南(二)- 聊聊五大類型:字元串、散列、列表、集合和有序集合

  《Redis 小白指南(三)- 事務、過期、消息通知、管道、優化記憶體空間》

  《Redis 小白指南(四)- 數據的持久化保存

 

 


【博主】反骨仔

【原文】http://www.cnblogs.com/liqingwen/p/6919308.html 

【GitHub】https://github.com/liqingwen2015/Wen.Helpers/blob/master/Wen.Helpers.Common/Redis/RedisHelper.cs

【參考】《Redis 入門指南》

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 溫習《高性能MySQL》的第一章 MySQL架構與歷史 1.1 MySQL邏輯架構 參考http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 圖1-1:MySQL伺服器邏輯架構圖 最上層的服務並不是MySQL所獨有的,大多數基 ...
  • 提取資料庫所有表的表名、欄位名 在SQLserver 2000中測試 在SQLserver 2005中測試 提取某個表的欄位名 ...
  • 在博客園看到一篇討論特別多的文章“探討SQL Server併發處理存在就更新七種解決方案”,這種業務需求很常見:如果記錄存在就更新,不存在就插入。 最常見的做法: 一個很明顯的問題,在高併發下可能存在操作同一條記錄的多個線程都進入到INSERT環節,導致插入失敗。 上面問題原因在於進入INSERT或 ...
  • 索引這塊從存儲結構來分,有2大類,聚集索引和非聚集索引,而非聚集索引在堆表或者在聚集索引表都會對其 鍵值有所影響,這塊可以詳細查看本系列第二篇文章:SQL SERVER大話存儲結構_(2)_非聚集索引如何查找到行記錄。 非聚集索引內又分為多類:單列索引、複合索引、包含索引、過濾索引等。之前文章有具體 ...
  • 死鎖的概念 什麼是死鎖呢? 其實我們生活中也有很多類似死鎖的例子。 我先舉一個生活中的例子:過年回家,父親買了一把水彈槍,兒子和侄子爭搶著要先玩,誰也不讓誰,拆開包裝後,一個搶了槍, 一個逮住了子彈和彈夾。兩個都爭著要先玩,但是都互不相讓。結果兩個人都玩不了。如果兒子要先玩,就必須讓侄子把子彈和彈夾... ...
  • sql查詢某欄位的相同值: SELECT * FROM table WHERE col in (SELECT col FROM table GROUP BY col HAVING COUNT (col) >1); 順帶說一下where和having: select * from tablewhere ...
  • 相比圖形數據的查詢,Neo4j更新圖形數據的速度較慢,通常情況下,Neo4j更新數據的工作流程是:每次數據更新都會執行一次資料庫連接,打開一個事務,在事務中更新數據。當數據量非常大時,這種做法非常耗時,大多數時間耗費在連接資料庫和打開事務上,高效的做法是利用Neo4j提供的參數(Parameter) ...
  • 今天發現線上資料庫主從延遲嚴重: 從庫大量日誌沒有做,當時就想到可能是從庫有事物沒有執行完畢,查看了一下未結束的事物和鎖信息,發現並不是這個原因,查看錯誤日誌: 消息Timeout occurred while waiting for latch: class 'COLUMNSTORE_ROWGRO ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...