Redis基本資料型別和操作(總結分享)

2022-11-10 18:01:53
本篇文章給大家帶來了關於的相關知識,其中主要介紹了關於基本資料型別和操作的相關內容,下面一起來看一下,希望對大家有幫助。

千萬級資料並行如何處理?進入學習

推薦學習:

Redis 簡介

redis是一個主要由開發者 Salvatore Sanfilippo(Antirez)開發的開源記憶體資料結構記憶體,用於改進其網站的可伸縮性,可以用作資料庫、快取和訊息代理等,可以在專案中結合著使用 Redis。

Redis 有著豐富的資料結構、優秀的速度、齊全的功能,眾多公司都在使用 Redis,它有著如下的特點:

  • 快速
  • NoSQL 資料庫
  • 支援眾多環境

Redis 是一個記憶體資料庫,這意味著所有的資料都儲存在記憶體中,而不是硬碟上(當然也支援硬碟的全量備份和增量備份)。記憶體的特點就是能夠支援快速存取和快速搜尋,但也受空間限制。

在資料庫架構中,Redis 通常位於使用者端和資料庫之間,以減輕 NoSQL 資料庫或應用程式的負載,減少快取時的資料存取延遲。

Redis 的主要用途

  • 佇列
  • 釋出/訂閱
  • 實時分析
  • 機器學習:為機器學習快速處理大量、多樣和快速的資料
  • 地理空間處理
  • 排行榜/計數(也就是日常所見的熱搜)
  • 對談快取
  • 整頁快取

使用 Redis 的公司

Who uses Redis?

Redis 使用與啟動

網上有很多安裝的教學,這裡以 Mac 端為例,在安裝完 Redis 伺服器之後,就可以通過以下命令啟動 Redis 伺服器:

redis-server
登入後複製

並通過以下命令啟動 redis-cli 使用者端:

redis-cli -h 127.0.0.1 -p 6379
登入後複製

如圖所示:

現在我們可以通過 Redis 的 PING 命令接受一條可選的訊息作為引數,這個命令通常用於測試使用者端和伺服器之間的連線是否正常,如果使用者以無引數形式執行這個命令,那麼伺服器在連線正常的情況下,將向用戶端返回 PONG 作為回覆:

127.0.0.1:6379> PINGPONG
登入後複製

實際測試如下:

Redis 初步介紹工作完成,我們來看一下 Redis 都有哪些基本的資料結構機器常見操作。

Redis的基本資料型別

  • 字串
  • 雜湊
  • 列表
  • 集合
  • 有序集合
  • HyperLogLog
  • 點陣圖

本文將介紹前五種常見的資料結構,後續更多的型別在其他文章單獨進行介紹和說明,常見的五種基本資料型別如下。

字串

字串(string)是 Redis 最基本的鍵值對型別,這種型別既可以保持普通文字,也可以儲存序列化的二進位制資料。

字串型別會在資料庫中把單獨的一個鍵和單獨的一個值關聯起來,被關聯的鍵和值既可以是普通的文字資料,也可以是圖片、視訊、音訊、壓縮檔案等更為複雜的二進位制資料。字串型別最大可以儲存 512M 資料。

字串一些常見操作

  • SET 命令:為一個字串設定相應的值,如 SET number "10086"
  • GET 命令:獲取鍵對應的值
127.0.0.1:6379> SET number "10086"OK127.0.0.1:6379> GET number"10086"127.0.0.1:6379>
登入後複製
  • GETRANGE:獲取擷取字串內容
  • STRLEN:獲取字串長度,如 STRLEN email
  • SETEX:設定帶有過期時間(秒)的 KEY-VALUE,如 SETEX city 5 Beijing

秒殺活動 PSETEX 設定毫秒

  • MSET:設定多個 KEY-VALUE ,如 MSET username jack sex male age 24
  • MGET:獲取多個 VALUE,如 MGET username sex age
  • APPEND: 用於在字串結尾追加內容
  • INCR:數位自增加1 ,如 INCR number
127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
登入後複製
  • INCRBY:數位加上指定的整數值
  • INCRBYFLOAT:數位加上指定的浮點數
  • DECR:數位自增減一
  • DECBY:數位減去指定的整數值

這些命令,大家都可以自己在。 Redis 使用者端進行測試。

雜湊型別

用來儲存更復雜的結構化資料

  • HSET:設定雜湊表欄位
  • HMSET:設定雜湊表多個欄位
  • HGET:獲取雜湊表欄位值,如 HGET 8000 ename
  • HMGET:獲取多個雜湊表欄位值,如 HMGET 80000 ename job deptno
  • HGETALL:獲取所有雜湊表欄位值
  • HKEYS:獲取所有雜湊表欄位名
  • HLEN:雜湊表中的欄位數量
  • HEXISTS:判斷雜湊表是否存在某個欄位
  • HVALS:獲取雜湊表中的所有欄位值
  • HDEL:刪除雜湊表的欄位
  • HINCRBY:讓雜湊表某個欄位值加上指定的整數值,如 HINCRBY 8000 deptono 10
  • HINCRBYFLOART:讓雜湊表某個欄位值加上指定的浮點數

列表型別

當我們需要向 VALUE 儲存序列化的資料,可以使用列表型別

RPUSH dname 技術部 後勤部 售後部
LPUSH dname 祕書處
LSET dname 2 銷售部
LRANGE dname 0 -1
登入後複製
  • RPUSH:在列表末尾新增值
  • LPUSH:在列表開頭新增值
  • LLEN:獲取列表長度
  • LINDEX:獲取列表某個元素,如 lindex dname 0
  • LINSERT:在某個位置插入元素,如 linsert dname before 祕書處 董事會
  • LPOP:刪除最左邊的元素 LPOP dname
  • RPOP:刪除列表最右邊的元素 RPOP dname
  • LREM:刪除列表某個元素,如
RPUSH employee Scott
RPUSH employee Jack
RPUSH employee Scott

LREM employee 1 Scott # 刪除第一個Scott,不是指索引為一
登入後複製

集合型別

假如要求資料不允許重複,則可以使用集合型別。

集合操作

SADD empno 8000SADD empno 8001SADD empno 8002SADD empno 8003 8004 8005SMEMBERS empno
登入後複製
  • SADD:將給定值新增到集合
  • SCARD:獲取集合長度,如: SCARD empno
  • SISMEMBER:判斷是否含有某個元素,如 SISMENBER empno 8000
  • SREM:刪除某個元素
  • SPOP:隨機刪除並返回集合的某個元素,如 SPOP empno
  • SRANDMEMBER:隨機返回集合中的元素,如 SRANDMEMBER empno 5
  • SUNION:組合兩個或多個集合並返回所有元素的列表
  • SMOVE:將成員從一個集合移動到另一個集合

有序集合

帶有排序功能的集合,Redis 按照元素分數值排序

ZADD keyword 0 "han" 0 "jack ma" 0 "Andrew wu"ZINCRBY keyword 1 "han"ZINCRBY keyword 5 "jack ma"ZINCRBY keyword 2 "Andrew wu"ZREVRANGE key 0 -1
登入後複製
  • ZCARD:獲取有序集合長度
  • ZCOUNT:查詢某個分數值區間內的元素數量,如 ZCOUNT keyword 5 10
  • ZSCORE:查詢元素的分數值
  • ZRANGE:獲取有序集合的內容(升序),如 ZRANGE keyword 0 -1
  • ZREVRANGE:獲取有序集合的內容(降序),如 ZREVRANGE keyword 0 -1
  • ZRANGEBYSCORE:獲取分數值區間內的集合內容(升序),如
zrangebyscore keyword 5 10  # 5-10
zrangebyscore keyword 5 (10  # 大於等於5, 小於 10
zrangebyscore keyword 100000 +inf
登入後複製
  • ZREVRANGEBYSCORE:獲取分數值區間內的集合內容(降序) zrevrangebyscore keyword 10 5
  • ZRANK:獲取元素的升序排名(從0開始)zrank keyword "xx"
  • ZREVRANK:獲取元素的降序排名(從0開始)
  • ZREM:刪除有序集合中的元素 ZREM keyword "x" "y"
  • ZREMRANGEBYRANK:刪除排名區間內的元素 zremrangebyrank keyword 0 2
  • ZREMRANGEBYSCORE:刪除分數值區間內的元素 zremrangebyscore keyword 0 -3

zremrangebyscore keyword inf (5000)

推薦學習:

以上就是Redis基本資料型別和操作(總結分享)的詳細內容,更多請關注TW511.COM其它相關文章!