1. 程式人生 > >【Redis】Redis的常規操作命令

【Redis】Redis的常規操作命令

更改 非關系型 數據結構 過期 with 隨機 move expire rpo

NoSQL是一種非關系型數據庫,非關系型數據庫庫和傳統的關系型數據庫不同,非關系性體現在不需要依賴表進行數據存儲。常見的非關系型數據庫有Redis、MonoDB、HBase等,這些是基於key-value進行數據存儲,采用命令操作。關系型數據庫的關系體現在對操作表上面,比如Oracle,MySQL、SQLServer,采用SQL操作。

Redis是非關系型數據庫的一種,它有如下特點

  • 采用C語言編寫,基於內存操作,被稱為內存數據庫。
  • 存儲的數據結構是key-value,value值可以為字符串、哈希、列表、集合、有序結構。
  • Redis的存儲數據異常快。
  • Redis支持持久化操作,將內存數據同步過數據文件中。
  • Redis還提供了事務、消息傳遞的功能。


下面介紹一些Redis的常規操作命令:

管理Redis鍵命令:

DEL key 此命令刪除鍵,如果存在
EXISTS key 此命令檢查該鍵是否存在
EXPIRE key seconds 指定鍵的過期時間
PEXPIRE key milliseconds 設置鍵以毫秒為單位到期
PERSIST key 移除過期的鍵
KEYS pattern 查找與指定模式匹配的所有鍵(KEYS * 用於查看所有的key)
DUMP key 該命令返回存儲在指定鍵的值的序列化結果
RANDOMKEY 從Redis返回隨機鍵
RENAME key newkey 更改鍵的名稱

TYPE key 返回存儲在鍵的數據類型的值
PTTL key 以毫秒為單位獲取剩余時間的到期鍵
TTL key 獲取鍵到期的剩余時間

字符串操作命令:

SET key value 此命令用於在指定鍵設置值
GET key 鍵對應的值
GETSET key value 設置鍵的字符串值,並返回舊值
STRLEN key 得到存儲在鍵的值的長度
MSET key value [key value ...] 設置多個鍵和多個值
INCR key 鍵的整數值加1
INCRBY key value 鍵的整數值加value
DECR key 鍵的整數值減1
DECRBY key value 鍵的整數值減value

APPEND key value 為原來鍵值追加value

哈希操作命令:

HMSET key field1 value1 [field2 value2 ] 設置多個哈希字段的多個值
HSET key field value 設置哈希字段的字符串值
HGET key field 獲取存儲在指定的鍵散列字段的值
HMGET key field1 [field2] 獲得所有給定的哈希字段的值
HLEN key 獲取哈希表中的長度
HKEYS key 獲取所有哈希表中的字段
HDEL key field2 [field2] 刪除一個或多個哈希字段
HEXISTS key field 判斷一個哈希字段存在與否


列表操作命令:

LPUSH key value1 [value2] 在前面加上一個或多個值的列表
RPUSH key value1 [value2] 在末尾加上一個或多個值的列表
LRANGE key start stop 返回存儲在key列表的特定元素,0是第一元素(該列表的頭部),1是列表的下一個元素, -1是該列表的最後一個元素,-2倒數第二個
LLEN key 獲取列表的長度
LPOP key 從頭部刪除一個元素,並返回該刪除的元素
RPOP key 從尾部刪除一個元素,並返回該刪除的元素
LTRIM key begin end 對列表元素剪切,保留指定key範圍內的數據
LINDEX key index 從一個列表其索引獲取對應的元素
LPUSHX key value 在前面加上一個值列表,僅當列表中存在,不成功返回0
RPUSHX key value 在末尾加上一個值列表,僅當列表中存在,不成功返回0
LREM key count value 移除等於value的元素,當count>0時,從表頭開始查找,移除count個;當count=0時,從表頭開始查找,移除所有等於value的;當count<0時,從表尾開始查找,移除|count| 個
LINSERT key before|after pivot value 將值插入到pivot的前面或後面。如果有多個pivot,以離表頭最近的為準
LSET key index value 設置列表指定索引的值,如果索引不存在則報錯

集合操作命令:

SADD key member [member ...] 向集合增加元素
SREM key member [member ...] 從集合刪除元素
SMEMBERS key 獲得集合中的所有元素
SISMEMBER key member 判斷元素是否在集合中
SCARD key 獲得集合中元素的個數
SRANDMEMBE key [count] 隨機獲得集合中的元素
SPOP key 從列表中彈出一個元素,彈出元素被刪除,不在原來的集合中
SDIFF key [key ...] 執行差集運算。集合A與集合B的差值表示為A-B
SINTER key [key ...] 執行交集運算。集合A與集合B的交集表示為A∩B
SUNION key [key ...] 執行並集運算。集合A與集合B的並集
SMOVE key1 key2 value 將第一個集合元素value移動到第二個集合中
SDIFFSTORE key key1 key2 執行差集運算並且存儲到另一個set中
SINTERSTORE key key1 key2 執行交集運算並且存儲到另一個set中
SUNIONSTORE key key1 key2 執行並集運算並且存儲到另一個set中

有序集合操作命令:

ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數
ZCARD key 獲取有序集合的成員數
ZCOUNT key min max 計算在有序集合中指定區間分數的成員數
ZSCORE key member 獲得元素的分數
ZRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合成指定區間內的成員(小到大)
ZREVRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合成指定區間內的成員(大到小)
ZRANGEBYSCORE key score1 score2 根據排序索引的scores來返回元素
ZRANK key member 返回元素在集合中的排序位置,就是索引值
ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
ZREM key member 刪除名稱為key的zset中的元素member
ZINCRBY key number member 可以增加一個元素的分數,返回值是更改後的分數
ZREMRANGEBYRANK key start stop 按照元素分數從小到大順序刪除指定範圍內所有的元素
ZREMRANGEBYSCORE key min max 刪除集合中在給定排序區間的元素 (按score刪除)

【Redis】Redis的常規操作命令