Redis數據類型相關命令及應用

@Redis keys 命令

DEL key 刪除key
EXISTS key 檢查給定 key 是否存在
EXPIRE  key seconds 爲給定 key 設置過期時間
EXPIREAT key timestamp 爲給定 key 設置過期時間,接受 unix timestamp
KEYS pattern   查找所有符合給定模式( pattern)的 key,如 KEYS test*
MOVE key db 將當前數據庫的key 移動到給定的數據庫db
PERSIST key 移除key 的過期時間,key將持久保持
TTL key 以秒爲單位,返回給定 key的剩餘生存時間
RANDOMKEY 從當前數據庫中隨機返回一個 key
RENAME key newkey 修改 key的名稱,newkey存在時將覆蓋舊值
RENAMENX key newkey 僅當 newkey 不存在時,將 key 改名爲 newkey
TYPE key 返回 key 所儲存的值的類型




 


 
 
 
 
 
 
 

 

 

 

@Redis 字符串命令

STRLEN key 返回 key 所儲存的字符串值的長度  
GET key 獲取指定 key 的值  
GETRANGE key start end 返回 key 中字符串值的子字符 redis 127.0.0.1:6379> SET mykey "This is my test key"
OK
redis 127.0.0.1:6379> GETRANGE mykey 0 3
"This"
redis 127.0.0.1:6379> GETRANGE mykey 0 -1
"This is my test key"
GETSET key value 將給定 key 的值設爲 value,並返回 key 的舊值(old value), 沒有舊值返回 nil  
MGET key1 [key2..] 獲取所有給定 key 的值,不存在的key返回nil  
SET key value 設置指定 key 的值  
SETNX key value 只有在 key 不存在時設置值  
SETEX key seconds value 爲指定的 key 設置值及其過期時間, 如果 key 已經存在覆蓋舊值  
SETRANGE key offset value 用 value 參數覆寫給定 key 的值,從偏移量 offset 開始 redis 127.0.0.1:6379> SET key1 "Hello World"
OK
redis 127.0.0.1:6379> SETRANGE key1 6 "Redis"
(integer) 11
redis 127.0.0.1:6379> GET key1
"Hello Redis"
MSET key value [key value ...] 同時設置一個或多個 key-value 對  
MSETNX key value [key value ...] 同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在  
INCR key 將 key中儲存的數字值加一  
INCRBY key increment 將 key中儲存的值加上給定的增量值  
INCRBYFLOAT key increment 將 key中儲存的值加上給定的浮點增量值  
DECR key 將 key 中儲存的數字值減一  
DECRBY key decrement 將key 中儲存的值減去給定的減量值  
APPEND key value 如果 key 已經存在並且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值的末尾 redis> EXISTS myphone
(integer) 0
redis> APPEND myphone "iPhone"      
(integer) 6       # 字符長度
redis> APPEND myphone " X"    
(integer) 8
redis> GET myphone
"iPhone X"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@Redis hash命令

HDEL key field1 [field2] 刪除一個或多個哈希表字段
HLEN key 獲取哈希表中字段的數量
HEXISTS key field 查看哈希表 key 中,指定的字段是否存在
HKEYS key 獲取所有哈希表中的字段
HVALS key 獲取哈希表中所有值
HGETALL key 獲取在哈希表中指定 key 的所有字段和值
HGET key field 獲取存儲在哈希表中指定字段的值
HMGET key field1 [field2] 獲取所有給定字段的值
HSET key field value 將哈希表 key 中的字段 field 的值設爲 value
HMSET key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設置到哈希表 key 中
HSETNX key field value 只有在字段 field 不存在時,設置哈希表字段的值
HINCRBY key field increment 爲哈希表 key 中的指定字段的整數值加上增量 increment
HINCRBYFLOAT key field increment 爲哈希表 key 中的指定字段的浮點數值加上增量 increment

 

 

 

 

 

 

 

 

 


@Redis列表命令

 

LLEN key
獲取列表長度

LINDEX key index
通過索引獲取列表中的元素
LRANGE key start stop
獲取列表指定範圍內的元素
LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者後插入元素
LSET key index value
通過索引設置列表元素的值
LTRIM key start stop
對一個列表進行修剪,只保留指定區間內的元素
LREM key count value
移除列表元素
count > 0 : 從表頭開始向表尾搜索,移除與 VALUE 相等的元素,數量爲 COUNT 。
count < 0 : 從表尾開始向表頭搜索,移除與 VALUE 相等的元素,數量爲 COUNT 的絕對值。
count = 0 : 移除表中所有與 VALUE 相等的值。
LPOP key
移出並獲取列表的第一個元素
RPOP key
移除列表的最後一個元素,返回值爲移除的元素。
LPUSH key value1 [value2]
將一個或多個值插入到列表頭部
RPUSH key value1 [value2]
在列表中添加一個或多個值
LPUSHX key value
將一個值插入到已存在的列表頭部
RPUSHX key value
爲已存在的列表添加值
RPOPLPUSH source destination
移除列表的最後一個元素,並將該元素添加到另一個列表並返回

BRPOPLPUSH source destination timeout
從列表中彈出一個值,將彈出的元素插入到另外一個列表中並返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@Redis集合命令

SCARD key    獲取集合的成員數
SMEMBERS key 返回集合中的所有成員
SISMEMBER key member 判斷 member 元素是否是集合 key 的成員
SADD key member1 [member2] 向集合添加一個或多個成員
SMOVE source destination member 將 member 元素從 source 集合移動到 destination 集合
SPOP key 移除並返回集合中的一個隨機元素
SREM key member1 [member2] 移除集合中一個或多個成員
SDIFF key1 [key2] 返回給定所有集合的差集
SDIFFSTORE destination key1 [key2] 返回給定所有集合的差集並存儲在 destination 中
SINTER key1 [key2] 返回給定所有集合的交集
SINTERSTORE destination key1 [key2] 返回給定所有集合的交集並存儲在 destination 中
SUNION key1 [key2] 返回所有給定集合的並集
SUNIONSTORE destination key1 [key2] 返回所有給定集合的並集存儲在 destination 集合中

 

 

 

 

 

 

 

 

 

@Redis有序集合命令

ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數
ZCARD key 獲取有序集合的成員數
ZCOUNT key min max 計算在有序集合中指定區間(閉區間)分數的成員數
ZSCORE key member 返回有序集中,成員的分數值
ZINCRBY key increment member 有序集合中對指定成員的分數加上增量 increment
ZINTERSTORE destination numkeys key [key ...] 計算給定有序集的交集,並將結果集儲存到 destination,numkeys 指定 key 的數量
默認情況下,結果集中某個成員的分數值是所有給定集下該成員分數值之和
ZUNIONSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的並集,並存儲到 destination
ZRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合指定區間內的成員
以 0 表示有序集第一個成員,以 -1 表示最後一個成員
值遞減(從大到小)來排列使用 ZREVRANGE 命令
> ZRANGE salary 0 -1 WITHSCORES
1) "jack"
2) 3000.0
3) "tom"
4) 5000.0
> ZRANGE salary 0 -1
1) "jack"
2) "tom"
ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定區間內的成員,通過索引,分數從高到低
ZRANK key member 返回有序集合中指定成員的索引(按升序排)
ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
ZRANGEBYSCORE key min max [WITHSCORES] 通過分數返回有序集合指定區間內的成員
https://www.runoob.com/redis/sorted-sets-zrangebyscore.html
ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分數區間內的成員,分數從高到低排序
ZREM key member [member ...] 移除有序集合中的一個或多個成員
ZREMRANGEBYRANK key start stop 移除有序集合中給定的排名區間的所有成員
ZREMRANGEBYLEX key min max 移除有序集合中給定的字典區間的所有成員
ZLEXCOUNT key min max 在有序集合中計算指定字典區間內成員數量(前提可能是分數值相同?或者排好序?)
ZRANGEBYLEX key min max 通過字典區間返回有序集合的成員

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@使用場景

1)字符串
計數器應用

2)列表
取最新N個數據的操作
消息隊列
文章列表

3)集合
利用唯一性,可以統計訪問網站的所有IP
實時系統,反垃圾系統
共同好友,二度好友
好友推薦的時候,根據tag求交集,大於某個閾值推薦

4)哈希
存儲、讀取、修改用戶屬性

5)有序集合
排行榜應用,取TOP N操作
需要精準設定過期時間應用(時間戳作爲Score)
帶有權重的元素,如遊戲的用戶得分排行榜   參考 -> 使用Redis實現實時排名 https://www.jianshu.com/p/2cbf358b933b
過期項目處理,按照時間排序 

 

Redis在線命令工具 ->   http://try.redis.io/

參考資料:
菜鳥教程Redis命令 https://www.runoob.com/redis/redis-sorted-sets.html
redis有序集合性能 列表、集合、有序集合 https://www.cnblogs.com/makai/p/11360938.html
Redis(二):Redis的九大應用場景 https://www.cnblogs.com/shamo89/p/6776300.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章