Redis學習筆記(一)五種數據類型

来源:http://www.cnblogs.com/zqzhao/archive/2017/12/12/8026952.html
-Advertisement-
Play Games

1、字元串(String) 基本操作:SET(設置)、GET(獲取)、DEL(刪除)高階操作傳送門 2、列表(List) 基本操作:LPUSH/RPUSH(將元素推入列表左端/右端)、LPOP/RPOP(從列表左/右彈出元素)、LINDEX(獲取指定位置上的元素)、LRANGE(獲取指定範圍內的元素 ...


1、字元串(String)

基本操作:SET(設置)、GET(獲取)、DEL(刪除)高階操作傳送門

root@localhost:~# redis-cli
127.0.0.1:6379> set msg hello
OK
127.0.0.1:6379> get msg
"hello"
127.0.0.1:6379> del msg
(integer) 1
127.0.0.1:6379> get msg
(nil)

2、列表(List)

基本操作:LPUSH/RPUSH(將元素推入列表左端/右端)、LPOP/RPOP(從列表左/右彈出元素)、LINDEX(獲取指定位置上的元素)、LRANGE(獲取指定範圍內的元素)

root@localhost:~# redis-cli
127.0.0.1:6379> rpush list 5
(integer) 1
127.0.0.1:6379> rpush list 6
(integer) 2
127.0.0.1:6379> lpush list 4
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #可以用來獲取當前列表中所有元素
1) "4"
2) "5"
3) "6"
127.0.0.1:6379> lpop list
"4"
127.0.0.1:6379> rpop list
"6"
127.0.0.1:6379> lindex list 0
"5"
127.0.0.1:6379> lindex list 1
(nil)
127.0.0.1:6379> lrange list 0 -1
1) "5"
127.0.0.1:6379> get list    
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> del list
(integer) 1
127.0.0.1:6379> lrange list 0 -1
(empty list or set)

 

3、集合(Set)

集合與列表的不同之處在於,集合儲存的元素是無序且各不相同的。

基本操作:SADD(添加元素)、SREM(移除元素)、SISMEMBER(給定元素是否在集合中)、SMEMBERS(返回集合中所有元素)

root@localhost:~# redis-cli
127.0.0.1:6379> sadd set 7
(integer) 1
127.0.0.1:6379> sadd set 7
(integer) 0
127.0.0.1:6379> sadd set 8 9
(integer) 2
127.0.0.1:6379> smembers set
1) "7"
2) "8"
3) "9"
127.0.0.1:6379> sismember set 1
(integer) 0
127.0.0.1:6379> sismember set 7
(integer) 1
127.0.0.1:6379> srem set 7
(integer) 1
127.0.0.1:6379> smembers set 
1) "8"
2) "9"
127.0.0.1:6379> srem set 1
(integer) 0

 

4、散列(hash)

散列儲存多個鍵值對之間的映射,顯然鍵需要各不相同。

基本操作:HSET(關聯給定的鍵值對)、HGET(獲取給定鍵的值)、HGETALL(獲取所有鍵值對)、HDELL(刪除給定鍵的鍵值對)

root@localhost:~# redis-cli
127.0.0.1:6379> hset hash a 1
(integer) 1
127.0.0.1:6379> hset hash b 2 c 3
(error) ERR wrong number of arguments for 'hset' command
127.0.0.1:6379> hset hash b 2
(integer) 1
127.0.0.1:6379> hgetall hash 
1) "a"
2) "1"
3) "b"
4) "2"
127.0.0.1:6379> hset hash a 3
(integer) 0
127.0.0.1:6379> hget hash a
"3"
127.0.0.1:6379> hdel hash a
(integer) 1
127.0.0.1:6379> hget hash a
(nil)
127.0.0.1:6379> hdel hash a
(integer) 0
127.0.0.1:6379> hgetall hash
1) "b"
2) "2"

5、有序集合(Sorted Set)

有序集合儲存鍵值對,其中,鍵必須各不相同,稱為成員(member),值須為浮點數,稱為分數(score)

基本操作:ZADD(添加帶分數的成員或更新成員的分數)、ZRANGE [WITHSCORES](根據給定的位置,獲取按分數升序排列的有序集合中的成員[分數])、ZRANGEBYSCORES  [WITHSCORES](獲取有序集合在給定分數範圍內的成員[分數])、ZREM(移除成員)

root@localhost:~# redis-cli
127.0.0.1:6379> zadd zset 110 i1
(integer) 1
127.0.0.1:6379> zadd zset 10 i2 200 i3
(integer) 2
127.0.0.1:6379> zrange zset 0 -1
1) "i2"
2) "i1"
3) "i3"
127.0.0.1:6379> zrange zset 0 -1 withscores
1) "i2"
2) "10"
3) "i1"
4) "110"
5) "i3"
6) "200"
127.0.0.1:6379> zrangebyscore zset 0 150 withscores
1) "i2"
2) "10"
3) "i1"
4) "110"
127.0.0.1:6379> zrem zset i1
(integer) 1
127.0.0.1:6379> zrangebyscore zset 0 150 withscores
1) "i2"
2) "10"

 


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

-Advertisement-
Play Games
更多相關文章
  • (1101001.101)2=(105.625)10=(151.5)8=(69.A)16(357.25)10=(101100101.01)2=(545.2)8=(165.4)16(9C4D.52A)16=(101110001001101.01010010101)2=(116115.2452)8(47 ...
  • 企業級nosql資料庫應用與實戰-redis 環境背景:隨著互聯網2.0時代的發展,越來越多的公司更加註重用戶體驗和互動,這些公司的平臺上會出現越來越多方便用戶操作和選擇的新功能,如優惠券發放、搶紅包、購物車、熱點新聞、購物排行榜等,這些業務的特點是數據更新頻繁、數據結構簡單、功能模塊相對獨立、以及 ...
  • ...
  • 當危險的動作發生, 誤刪 /user/bin目錄後的補救 以下是昨天晚上真實的誤操作現場,模擬記錄一下 (這是測試環境,所以操作得很隨意,有些執行動作很不規範) ...
  • 本文同時發表在 "https://github.com/zhangyachen/zhangyachen.github.io/issues/117" 首先說明一下MySQL的版本: 表結構: id為自增主鍵,val為非唯一索引。 灌入大量數據,共500萬: 我們知道,當limit offset row ...
  • 本篇文章就是給大家科普一下,解壓版的MySQL資料庫下載與安裝的具體步驟 ...
  • 約束是一種限制,它通過對錶的行或列的數據做出限制,來確保表的數據的完整性、唯一性。文章將在實踐操作中熟悉 MySQL 中的幾種約束。 ...
  • 之前我們講了以下Redis的知識技術四部曲,點擊回顧:《Redis的sentinel(哨兵)機制》、《解密Redis的持久化和主從複製機制》、《Redis安裝和實際應用》、《深入淺出Redis》;接下來我們在看看Redis第五部曲:Redis集群。 Redis集群簡介Redis 集群是一個可以在多個 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...