本文小編為大家詳細介紹“redis基本數(shù)據(jù)類型和操作方法有哪些”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“Redis基本數(shù)據(jù)類型和操作方法有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。
企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,成都創(chuàng)新互聯(lián)面向各種領(lǐng)域:輕質(zhì)隔墻板等成都網(wǎng)站設(shè)計、網(wǎng)絡(luò)營銷推廣解決方案、網(wǎng)站設(shè)計等建站排名服務(wù)。
redis是一個主要由開發(fā)者 Salvatore Sanfilippo(Antirez)開發(fā)的開源內(nèi)存數(shù)據(jù)結(jié)構(gòu)存儲器,用于改進其網(wǎng)站的可伸縮性,可以用作數(shù)據(jù)庫、緩存和消息代理等,可以在項目中結(jié)合著使用 Redis。
Redis 有著豐富的數(shù)據(jù)結(jié)構(gòu)、優(yōu)秀的速度、齊全的功能,眾多公司都在使用 Redis,它有著如下的特點:
快速
NOSQL 數(shù)據(jù)庫
支持眾多環(huán)境
Redis 是一個內(nèi)存數(shù)據(jù)庫,這意味著所有的數(shù)據(jù)都保存在內(nèi)存中,而不是硬盤上(當然也支持硬盤的全量備份和增量備份)。內(nèi)存的特點就是能夠支持快速訪問和快速搜索,但也受空間限制。
在數(shù)據(jù)庫架構(gòu)中,Redis 通常位于客戶端和數(shù)據(jù)庫之間,以減輕 NoSQL 數(shù)據(jù)庫或應(yīng)用程序的負載,減少緩存時的數(shù)據(jù)訪問延遲。
隊列
發(fā)布/訂閱
實時分析
機器學(xué)習(xí):為機器學(xué)習(xí)快速處理大量、多樣和快速的數(shù)據(jù)
地理空間處理
排行榜/計數(shù)(也就是日常所見的熱搜)
會話緩存
整頁緩存
網(wǎng)上有很多安裝的教程,這里以 Mac 端為例,在安裝完 Redis 服務(wù)器之后,就可以通過以下命令啟動 Redis 服務(wù)器:
redis-server
并通過以下命令啟動 redis-cli 客戶端:
redis-cli -h 127.0.0.1 -p 6379
如圖所示:
現(xiàn)在我們可以通過 Redis 的 PING 命令接受一條可選的消息作為參數(shù),這個命令通常用于測試客戶端和服務(wù)器之間的連接是否正常,如果用戶以無參數(shù)形式執(zhí)行這個命令,那么服務(wù)器在連接正常的情況下,將向客戶端返回 PONG 作為回復(fù):
127.0.0.1:6379> PINGPONG
實際測試如下:
Redis 初步介紹工作完成,我們來看一下 Redis 都有哪些基本的數(shù)據(jù)結(jié)構(gòu)機器常見操作。
字符串
哈希
列表
集合
有序集合
HyperLogLog
位圖
本文將介紹前五種常見的數(shù)據(jù)結(jié)構(gòu),后續(xù)更多的類型在其他文章單獨進行介紹和說明,常見的五種基本數(shù)據(jù)類型如下。
字符串(string)是 Redis 最基本的鍵值對類型,這種類型既可以保持普通文字,也可以保存序列化的二進制數(shù)據(jù)。
字符串類型會在數(shù)據(jù)庫中把單獨的一個鍵和單獨的一個值關(guān)聯(lián)起來,被關(guān)聯(lián)的鍵和值既可以是普通的文字數(shù)據(jù),也可以是圖片、視頻、音頻、壓縮文件等更為復(fù)雜的二進制數(shù)據(jù)。字符串類型最大可以存儲 512M 數(shù)據(jù)。
字符串一些常見操作
SET 命令:為一個字符串設(shè)置相應(yīng)的值,如 SET number "10086"
GET 命令:獲取鍵對應(yīng)的值
127.0.0.1:6379> SET number "10086"OK127.0.0.1:6379> GET number"10086"127.0.0.1:6379>
GETRANGE:獲取截取字符串內(nèi)容
STRLEN:獲取字符串長度,如 STRLEN email
SETEX:設(shè)置帶有過期時間(秒)的 KEY-VALUE,如 SETEX city 5 Beijing
秒殺活動 PSETEX 設(shè)置毫秒
MSET:設(shè)置多個 KEY-VALUE ,如 MSET username jack sex male age 24
MGET:獲取多個 VALUE,如 MGET username sex age
APPEND: 用于在字符串結(jié)尾追加內(nèi)容
INCR:數(shù)字自增加1 ,如 INCR number
127.0.0.1:6379> INCR number(integer) 10087127.0.0.1:6379>
INCRBY:數(shù)字加上指定的整數(shù)值
INCRBYFLOAT:數(shù)字加上指定的浮點數(shù)
DECR:數(shù)字自增減一
DECBY:數(shù)字減去指定的整數(shù)值
這些命令,大家都可以自己在。 Redis 客戶端進行測試。
用來保存更復(fù)雜的結(jié)構(gòu)化數(shù)據(jù)
HSET:設(shè)置哈希表字段
HMSET:設(shè)置哈希表多個字段
HGET:獲取哈希表字段值,如 HGET 8000 ename
HMGET:獲取多個哈希表字段值,如 HMGET 80000 ename job deptno
HGETALL:獲取所有哈希表字段值
HKEYS:獲取所有哈希表字段名
HLEN:哈希表中的字段數(shù)量
HEXISTS:判斷哈希表是否存在某個字段
HVALS:獲取哈希表中的所有字段值
HDEL:刪除哈希表的字段
HINCRBY:讓哈希表某個字段值加上指定的整數(shù)值,如 HINCRBY 8000 deptono 10
HINCRBYFLOART:讓哈希表某個字段值加上指定的浮點數(shù)
當我們需要向 VALUE 保存序列化的數(shù)據(jù),可以使用列表類型
RPUSH dname 技術(shù)部 后勤部 售后部
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,不是指索引為一
假如要求數(shù)據(jù)不允許重復(fù),則可以使用集合類型。
集合操作
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 按照元素分數(shù)值排序
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:查詢某個分數(shù)值區(qū)間內(nèi)的元素數(shù)量,如 ZCOUNT keyword 5 10
ZSCORE:查詢元素的分數(shù)值
ZRANGE:獲取有序集合的內(nèi)容(升序),如 ZRANGE keyword 0 -1
ZREVRANGE:獲取有序集合的內(nèi)容(降序),如 ZREVRANGE keyword 0 -1
ZRANGEBYSCORE:獲取分數(shù)值區(qū)間內(nèi)的集合內(nèi)容(升序),如
zrangebyscore keyword 5 10 # 5-10
zrangebyscore keyword 5 (10 # 大于等于5, 小于 10
zrangebyscore keyword 100000 +inf
ZREVRANGEBYSCORE:獲取分數(shù)值區(qū)間內(nèi)的集合內(nèi)容(降序) zrevrangebyscore keyword 10 5
ZRANK:獲取元素的升序排名(從0開始)zrank keyword "xx"
ZREVRANK:獲取元素的降序排名(從0開始)
ZREM:刪除有序集合中的元素 ZREM keyword "x" "y"
ZREMRANGEBYRANK:刪除排名區(qū)間內(nèi)的元素 zremrangebyrank keyword 0 2
ZREMRANGEBYSCORE:刪除分數(shù)值區(qū)間內(nèi)的元素 zremrangebyscore keyword 0 -3
如 zremrangebyscore keyword inf (5000)
讀到這里,這篇“Redis基本數(shù)據(jù)類型和操作方法有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。