您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Redis基本數據類型和操作方法有哪些”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Redis基本數據類型和操作方法有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
redis是一個主要由開發者 Salvatore Sanfilippo(Antirez)開發的開源內存數據結構存儲器,用于改進其網站的可伸縮性,可以用作數據庫、緩存和消息代理等,可以在項目中結合著使用 Redis。
Redis 有著豐富的數據結構、優秀的速度、齊全的功能,眾多公司都在使用 Redis,它有著如下的特點:
快速
NoSQL 數據庫
支持眾多環境
Redis 是一個內存數據庫,這意味著所有的數據都保存在內存中,而不是硬盤上(當然也支持硬盤的全量備份和增量備份)。內存的特點就是能夠支持快速訪問和快速搜索,但也受空間限制。
在數據庫架構中,Redis 通常位于客戶端和數據庫之間,以減輕 NoSQL 數據庫或應用程序的負載,減少緩存時的數據訪問延遲。
隊列
發布/訂閱
實時分析
機器學習:為機器學習快速處理大量、多樣和快速的數據
地理空間處理
排行榜/計數(也就是日常所見的熱搜)
會話緩存
整頁緩存
網上有很多安裝的教程,這里以 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 都有哪些基本的數據結構機器常見操作。
字符串
哈希
列表
集合
有序集合
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基本數據類型和操作方法有哪些”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。