1. 程式人生 > >redis數據類型和操作指令

redis數據類型和操作指令

tar keys int als 數字 第一個 pivot 移除 zset

  redis存儲數據是key:value的形式,其中value一共支持五種數據類型:string、hash、list、set、zset

1、string:最常見的數據類型,就是字符串

  • SET key value 此命令設置指定鍵的值。
  • GET key 獲取指定鍵的值。
  • GETRANGE key start end 獲取存儲在鍵上的字符串的子字符串。
  • GETSET key value 設置鍵的字符串值並返回其舊值。
  • GETBIT key offset 返回在鍵處存儲的字符串值中偏移處的位值。
  • MGET key1 [key2..] 獲取所有給定鍵的值
  • SETBIT key offset value 存儲在鍵上的字符串值中設置或清除偏移處的位
  • SETEX key seconds value 使用鍵和到期時間來設置值
  • SETNX key value 設置鍵的值,僅當鍵不存在時
  • SETRANGE key offset value 在指定偏移處開始的鍵處覆蓋字符串的一部分
  • STRLEN key 獲取存儲在鍵中的值的長度
  • MSET key value [key value …] 為多個鍵分別設置它們的值
  • MSETNX key value [key value …] 為多個鍵分別設置它們的值,僅當鍵不存在時
  • PSETEX key milliseconds value 設置鍵的值和到期時間(以毫秒為單位)
  • INCR key 將鍵的整數值增加1
  • INCRBY key increment 將鍵的整數值按給定的數值增加
  • INCRBYFLOAT key increment 將鍵的浮點值按給定的數值增加
  • DECR key 將鍵的整數值減1
  • DECRBY key decrement 按給定數值減少鍵的整數值
  • APPEND key value 將指定值附加到鍵 

2、hash:是字符串字段和字符串值之間的映射(類似於PHP中的數組類型)。 因此,它們是表示對象的完美數據類型。在Redis中,每個哈希(散列)可以存儲多達4億個鍵-值對

  • HDEL key field2 [field2] 刪除一個或多個哈希字段。
  • HEXISTS key field 判斷是否存在散列字段。
  • HGET key field 獲取存儲在指定鍵的哈希字段的值。
  • HGETALL key 獲取存儲在指定鍵的哈希中的所有字段和值
  • HINCRBY key field increment 將哈希字段的整數值按給定數字增加
  • HINCRBYFLOAT key field increment 將哈希字段的浮點值按給定數值增加
  • HKEYS key 獲取哈希中的所有字段
  • HLEN key 獲取散列中的字段數量
  • HMGET key field1 [field2] 獲取所有給定哈希字段的值
  • HMSET key field1 value1 [field2 value2 ] 為多個哈希字段分別設置它們的值
  • HSET key field value 設置散列字段的字符串值
  • HSETNX key field value 僅當字段不存在時,才設置散列字段的值
  • HVALS key 獲取哈希中的所有值

3、list:Redis列表只是字符串列表,按插入順序排序。可以在列表的頭部或尾部添加Redis列表中的元素。列表的最大長度為2^32 - 1個元素(即4294967295,每個列表可存儲超過40億個元素)。

  • BLPOP key1 [key2 ] timeout 刪除並獲取列表中的第一個元素,或阻塞,直到有一個元素可用
  • BRPOP key1 [key2 ] timeout 刪除並獲取列表中的最後一個元素,或阻塞,直到有一個元素可用
  • BRPOPLPUSH source destination timeout 從列表中彈出值,將其推送到另一個列表並返回它; 或阻塞,直到一個可用
  • LINDEX key index 通過其索引從列表獲取元素
  • LINSERT key BEFORE/AFTER pivot value 在列表中的另一個元素之前或之後插入元素
  • LLEN key 獲取列表的長度
  • LPOP key 刪除並獲取列表中的第一個元素
  • LPUSH key value1 [value2] 將一個或多個值添加到列表
  • LPUSHX key value 僅當列表存在時,才向列表添加值
  • LRANGE key start stop 從列表中獲取一系列元素
  • LREM key count value 從列表中刪除元素
  • LSET key index value 通過索引在列表中設置元素的值
  • LTRIM key start stop 修剪列表的指定範圍
  • RPOP key 刪除並獲取列表中的最後一個元素
  • RPOPLPUSH source destination 刪除列表中的最後一個元素,將其附加到另一個列表並返回
  • RPUSH key value1 [value2] 將一個或多個值附加到列表
  • RPUSHX key value 僅當列表存在時才將值附加到列表

4、set:Redis的Set是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現重復的數據。Redis 中 集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

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

5、Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。有序集合的成員是唯一的,但分數(score)卻可以重復。集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。

  • ZADD key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數
  • ZCARD key 獲取有序集合的成員數
  • ZCOUNT key min max 計算在有序集合中指定區間分數的成員數
  • ZINCRBY key increment member 有序集合中對指定成員的分數加上增量 increment
  • ZINTERSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的交集並將結果集存儲在新的有序集合 key 中
  • ZLEXCOUNT key min max 在有序集合中計算指定字典區間內成員數量
  • ZRANGE key start stop [WITHSCORES] 通過索引區間返回有序集合成指定區間內的成員
  • ZRANGEBYLEX key min max [LIMIT offset count] 通過字典區間返回有序集合的成員
  • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] 通過分數返回有序集合指定區間內的成員
  • ZRANK key member 返回有序集合中指定成員的索引
  • ZREM key member [member ...] 移除有序集合中的一個或多個成員
  • ZREMRANGEBYLEX key min max 移除有序集合中給定的字典區間的所有成員
  • ZREMRANGEBYRANK key start stop 移除有序集合中給定的排名區間的所有成員
  • ZREMRANGEBYSCORE key min max 移除有序集合中給定的分數區間的所有成員
  • ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定區間內的成員,通過索引,分數從高到底
  • ZREVRANGEBYSCORE key max min [WITHSCORES] 返回有序集中指定分數區間內的成員,分數從高到低排序
  • ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
  • ZSCORE key member 返回有序集中,成員的分數值
  • ZUNIONSTORE destination numkeys key [key ...] 計算給定的一個或多個有序集的並集,並存儲在新的 key 中
  • ZSCAN key cursor [MATCH pattern] [COUNT count] 叠代有序集合中的元素(包括元素成員和元素分值)

redis數據類型和操作指令