@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