redis的數據類型及操作
redis當中一共支持五種數據類型,分別是string字符串類型,list列表類型,集合set類型,hash表類型以及有序集合zset類型
字符串操作
-
SET key value
(指定key的值) -
GET key value
(獲取key的值) -
GETRANGE key m,n
(獲取key的值的[m,n]的子字符) -
GETSET key value
(重新設置key的值,並返回舊值) -
MGET key1[key2...]
(獲取一個或多個key的值) -
SETEX key seconds value
(將key值設爲value,且過期時間爲seconds(單位是秒),即過期時間結束後該key自動消失) -
SETNX key value
(key不存在時設置爲value,並返回1,key存在不改變value值,返回0) -
SETRANGE key offset value
(從offset偏移量處覆蓋原始key值,返回修改後的字符數) -
STRLEN key
(返回key值的長度) -
MSET key1 value1[key2 value2 ...]
(同時設置多個key的值,這些key值都不存在) -
PESTEX key millisenconds value
(設置key生存時間,單位是毫秒) -
INCR key
(將key存儲的數字值加一)、INCRBY key increment
(將key增加指定值)、INCRBYFLOAT key increment
(將key增加指定浮點數) -
DECR key
(將key存儲的數字值減一)、DECRBY key increment
(將key減少指定值) -
APPEND key value
(在key的值後追加value) -
del key
(刪除key)
hash列表操作
Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)
-
HSET key field value
(將哈希表中的key中的字段field的值設爲value)、HSETNX key field value
(將哈希表中的key中的字段field的值設爲value,前提是field之前不存在) -
HEXISTS key field
(查看key中字段是否存在) -
HMSET key1 field1 value1 [field 2 value2...]
(同時給key添加多個字段值) -
HGETALL key
(獲取key的所有字段和值)、HGET key field
(獲取key指定字段的值)、HKEYS key
(獲取哈希表中所有字段)、HLEN key
(獲取哈希表中字段的數量)、HMGET key field [field2...]
(獲取所有給定字段的值) -
HINCRBY key field increment
(爲哈希表 key 中的指定字段的整數值加上增量 increment)、HINCRBYFLOAT key field increment
(爲哈希表 key 中的指定字段的整數值加上浮點數增量 increment) -
HVALS key
(獲取哈希表中的所有值) -
HDEL key field1[field2...]
(刪除一個或多個字段)
列表操作
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
-
LPUSH key value1[value2...]
(將一個值或多個值插到列表頭部,類似入棧操作)、LPUSHX key value(將一個值插到已存在列表的頭部) -
LRANGE key start stop
(查看List中的所有數據) -
RPUSH key value1 [value2...]
(在列表後插入一個或多個值)、RPSUHX key value
(爲已存在的列表添加值) -
LINSERT key BEFORE|AFTER pivot value
(在列表元素前或後插入) -
LINDEX key value
(通過索引獲取值,索引值從0開始和返回的序號不同)、LSET key index value
(通過索引設置值) -
LLEN key
(獲取列表長度) -
LPOP key
(獲取列表第一個並移除,類似出棧操作,從左邊彈出)、RPOP key
(獲取列表最後一個並移除,從右邊彈出) -
LTRIM key start stop
(保留列表中start到stop的值)
集合操作
redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。
Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。
集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
-
SADD key member1[member2...]
(向集合添加一個或多個成員)、SMEMBERS key
(返回集合中所有成員) -
SCARD key
(獲取集合的成員數)、SDIFF key1 [key2]
(返回給定集合的差集)、SDIFFSTORE destination key1 [key2]
(返回給定集合的差集由destination存儲) -
SINTER key1 [key2]
(返回給定集合的交集)、SINTERSTORE destination key1 [key2]
(返回給定集合的交集由destination存儲) -
SUNION key1 [key2]
(返回給定集合的並集)、SUNIONSTORE destination key1 [key2]
(返回給定集合的並集由destination存儲) -
SISMEMBER key member
(判斷member是否爲key中成員)、SMOVE key1 key2 member
(將key1中的member移到key2中) -
SPOP key
(隨機移除並返回集合中一個元素)、SRANDMEMBER key count
(隨機從key中返回count個元素) -
SREM key member1[member2]
(移除集合中一個或多個成員)
key操作
-
DEL key
(刪除key) -
DUMP key
(序列化key,並返回序列化的值) -
EXISTS key
(檢查key是否存在) -
EXPIRE key seconds
(設置過期時間,單位是秒),PEXPIRE key seconds
(設置過期時間,單位是毫秒) -
PERSIST key
(移除過期時間) -
PTTL key
(返回過期時間,單位是毫秒),TTL key
(返回過期時間,單位是秒) -
RANDOMKEY
(隨機返回一個key) -
RENAME key newkey
(修改key值),RENAMENX key newkey
(當newkey不存在時將key改爲newkey) -
TYPE key
(返回key存儲值的類型)