一.List串列
基于Linked List實作 元素是字串型別
串列頭尾增刪快,中間增刪慢,增刪元素是常態
元素可以重復出現
最多包含2^32-1元素

串列的索引
從左至右,從0開始
從右至左,從-1開始

1.左右或者頭尾壓入元素
LPUSH key value [value ...]
LPUSHX key value
RPUSH key value [value ...]
RPUSHX key value

2.左右或者頭尾彈出元素
LPOP key RPOP key

3.從一個串列尾部彈出元素壓入到另一個串列的頭部
RPOPLPUSH source destination
4.回傳串列中指定范圍元素
LRANGE key start stop LRANGE key 0 -1表示回傳所有元素

5.獲取指定位置的元素
LINDEX key index
6.設定指定位置元素的值
LSET key index value
7.串列長度,元素個數
LLEN key

8.從串列頭部開始洗掉值等于value的元素count次
LREM key count value
count > 0 : 從表頭開始向表尾搜索,移除與 value 相等的元素,數量為 count
count < 0 : 從表尾開始向表頭搜索,移除與 value 相等的元素,數量為 count 的絕對值
count = 0 : 移除表中所有與 value 相等的值

9.去處指定范圍外元素
LTRIM key start stop

10.在串列中某個存在的值(pivot)前或后插入元素
LINSERT key BEFORE|AFTER pivot value
key和pivot不存在,不進行任何操作

11.阻塞
如果彈出的串列不存在或者為空,就會阻塞
超時時間設定為0,就是永久阻塞,直到有資料可以彈出
如果多個客戶端阻塞在同一個串列上,使用First In First Service原則,先到先服務
左右或者頭尾阻塞彈出元素
BLPOP key [key ...] timeout
BRPOP key [key ...] timeout
二. Hsh散列
1.特點
由field和關聯的value組成的map鍵值對
field和value是字串型別一個hash中
最多包含2^32-1鍵值對

2.設定單個欄位
HSET key field value
HSETNX key field value
key的filed不存在的情況下執行,key不存在直接創建
3.設定多個欄位
HMSET key field value [field value ...]
4.回傳欄位個數
HLEN key
5.判斷欄位是否存在
HEXISTS key field
key或者field不存在,回傳0

6.回傳欄位值
HGET key field
7.回傳多個欄位值
HMGET key field [field ...]
8.回傳所有的鍵值對
HGETALL key
9.回傳所有欄位名
HKEYS key
10.回傳所有值
HVALS key

11.在欄位對應的值上進行整數的增量計算
HINCRBY key field increment
12.在欄位對應的值上進行浮點數的增量計算
HINCRBYFLOAT key field increment
13.洗掉指定的欄位
HDEL key field [field ...]

14. hash的用途
1)節約記憶體空間
2)每創建一個鍵,它都會為這個鍵儲存一些附加的管理資訊(比如這個鍵的型別,這個鍵最后一次被訪問的時間等等)
3)所以資料庫里面的鍵越多,redis資料庫服務器在儲存附加管理資訊方面耗費的記憶體就越多,花在管理資料庫鍵上的CPU也會越多在欄位對應的值上進行浮點數的增量計算

15.不適合hash的情況
1)使用二進制位操作命令:因為Redis目前支持對字串鍵進行SETBIT、GETBIT、BITOP等操作,如果你想使用這些操作,那么只能使用字串鍵,雖然散列也能保存二進制資料
2)使用過期鍵功能:Redis的鍵過期功能目前只能對鍵進行過期操作,而不能對散列的欄位進行過期操作,因此如果你要對鍵值對資料使用過期功能的話,那么只能把鍵值對儲存在字串里面
三.set集合
1.特點
無序的、去重的
元素是字串型別
最多包含2^32-1元素

2.增加一個或多個元素
SADD key member [member ...]
如果元素已經存在,則自動忽略
3. 移除一個或者多個元素
SREM key member [member ...]
元素不存在,自動忽略
4.回傳集合包含的所有元素
SMEMBERS key
如果集合元素過多,例如百萬個,需要遍歷,可能會造成服務器阻塞,生產環境應避免使用

5.集合的無序性 ‘
SADD friends "peter" "jack" "tom" "john" "may" "ben"
SADD anotherfriends "peter" "jack" "tom" "john" "may" "ben"
SMEMBERS friends
SMEMBERS anotherfriends
注意, SMEMBERS 有可能回傳不同的結果,所以,如果需要存盤有序且不重復的資料使用有序集合,存盤有序可重復的使用串列
6. 隨機回傳集合中指定個數的
SRANDMEMBER key [count]
如果 count 為正數,且小于集合基數,那么命令回傳一個包含 count 個元素的陣列,陣列中的元素各不相同,
如果 count 大于等于集合基數,那么回傳整個集合
如果 count 為負數,那么命令回傳一個陣列,陣列中的元素可能會重復出現多次,而陣列的長度為 count 的絕對值
如果 count 為 0,回傳空 如果 count 不指定,隨機回傳一個元素

7. 回傳集合中元素的個數
SCARD key 鍵的結果會保存資訊,集合長度就記錄在里面,所以不需要遍歷
8. 隨機從集合中移除并回傳這個被移除的元素
SPOP key

9. 差集
SDIFF key [key ...],從第一個key的集合中去除其他集合和自己的交集部分
SDIFFSTORE destination key [key ...],將差集結果存盤在目標key中


10.交集
SINTER key [key ...],取所有集合交集部分
SINTERSTORE destination key [key ...],將交集結果存盤在目標key中


11. 并集
SUNION key [key ...],取所有集合并集
SUNIONSTORE destination key [key ...],將并集結果存盤在目標key中


四. SortedSet有序集合
1.特點
類似Set集合
有序的、去重的
元素是字串型別
每一個元素都關聯著一個浮點數分值(Score),并按照分值從小到大的順序排列集合中的元素,
分值可以相同 最多包含2^32-1元素
2. 增加一個或多個元素
ZADD key score member [score member ...]
如果元素已經存在,則使用新的score
舉例
ZADD fruits 3.2 香蕉
ZADD fruits 2.0 西瓜
ZADD fruits 4.0 番石榴 7.0 梨 6.8 芒果

3. 移除一個或者多個元素
ZREM key member [member ...]
元素不存在,自動忽略
舉例
ZREM fruits 番石榴 梨 芒果
ZREM fruits 西瓜
4.顯示分值
ZSCORE key member
舉例
ZSCORE fruits 芒果
ZSCORE fruits 西瓜

計算機并不能精確表達每一個浮點數,都是一種近似表達
5.增加或者減少分值
ZINCRBY key increment member increment為負數就是減少
舉例 ZINCRBY fruits 1.5 西瓜 ZINCRBY fruits -0.8 香蕉

6. 回傳元素的排名(索引)
ZRANK key member
舉例 ZRANK fruits 西瓜
ZRANK fruits 番石榴
ZRANK fruits 芒果

7. 回傳元素的逆序排名
ZREVRANK key member

8. 回傳指定索引區間元素
ZRANGE key start stop [WITHSCORES]
如果score相同,則按照字典序lexicographical order 排列 默認按照score從小到大,如果需要score從大到小排列,使用ZREVRANGE

9. 回傳指定分值區間元素
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
回傳score默認屬于[min,max]之間,元素按照score升序排列,score相同字典序
LIMIT中offset代表跳過多少個元素,count是回傳幾個,類似于Mysql
使用小括號,修改區間為開區間,例如(5、(10、5)
-inf和+inf表示負無窮和正無窮

10.回傳指定分值區間元素
ZREVRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
回傳score默認屬于[min,max]之間,元素按照score降序排列,score相同字典降序
LIMIT中offset代表跳過多少個元素,count是回傳幾個,類似于Mysql
使用小括號,修改區間為開區間,例如(5、(10、5)
-inf和+inf表示負無窮和正無窮
、
11.移除指定排名范圍的元素

12.移除指定分值范圍的元素

13.回傳集合中元素個數

14.并集

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/300669.html
標籤:其他
上一篇:MSSQL-PSQL轉換
