五種數據類型:
字符串(String)
哈希(hash)
字符串列表(list)
有序字符串集合(sorted set)
字符串集合(set)
1.字符串(String)
Key定義的注意點:
不要過長,
不要過短,
統一的命名規範
存儲String
二進制安全的,存入和獲取的數據相同
Value最多可以容納的數據長度是512M
存儲String常用命令
賦值
取值
刪除
數值增減
語法 | 解釋 | 例子 |
---|---|---|
SET key | 設置指定 key 的值 | |
GET key | 獲取指定 key 的值 | |
GETSET key value | 將給定 key 的值設爲 value ,並返回 key 的舊值(old value) | |
DEL key1[ key2…] | 刪除 | |
INCR key | 將 key 中儲存的數字值增一 | |
INCRBY key increment | 將 key 所儲存的值加上給定的增量值(increment) | |
DECR key | 將 key 中儲存的數字值減一 | |
DECRBY key decrement | key 所儲存的值減去給定的減量值(decrement) | |
APPEND key value | 如果 key 已經存在並且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾 |
2.哈希(hash)
存儲Hash
String key和String Value的Map容器
每一個Hash可以存儲4294967295個鍵值對
存儲Hash常用命令:
賦值
取值
刪除
增加數字
判斷字段是否存在
獲取hash屬性個數
獲取hash所有屬性名稱
語法 | 解釋 | 例子 |
---|---|---|
HSET key field value | 將哈希表 key 中的字段 field 的值設爲 value | |
HMSET key field1 value1 [field2 value2 ] | 同時將多個 field-value (域-值)對設置到哈希表 key 中 | |
HGET key field | 獲取存儲在哈希表中指定字段的值 | |
HGETALL key | 獲取在哈希表中指定 key 的所有字段和值 | |
HLEN key | 獲取哈希表中字段的數量 | |
HKEYS key | 獲取所有哈希表中的字段 | |
HVALS key | 獲取哈希表中所有值 | |
HDEL key field1 [field2] | 刪除一個或多個哈希表字段 | |
HINCRBY key field increment | 爲哈希表 key 中的指定字段的整數值加上增量 increment | |
HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
3.字符串列表(list)
存儲list:
ArrayList使用數組方式
LinkedList使用雙向鏈接方式
雙向鏈接表中增加數據
雙向鏈接表中刪除數據
存儲list常用命令
兩端添加
兩端彈出
擴展命令
語法 | 解釋 | 例子 |
---|---|---|
LPUSH key value1 [value2] | 將一個或多個值插入到列表頭部 | |
LPUSHX key value | 將一個值插入到已存在的列表頭部 | |
RPUSH key value1 [value2] | 在列表中添加一個或多個值到列表底部 | |
RPUSHX key value | 爲已存在的列表添加值 | |
LRANGE key start stop | 獲取列表指定範圍內的元素 | |
LPOP key | 移出並獲取列表的第一個元素 | |
RPOP key | 移除列表的最後一個元素,返回值爲移除的元素。 | |
LLEN key [value2] | 獲取列表長度 | |
LREM key count value | 移除列表元素 count爲正數從左移除,負數從右移除,0爲所有 | |
LSET key index value | 通過索引設置列表元素的值 | |
LINSERT key BEFORE | AFTER pivot value | 在列表的元素前或者後插入元素 |
RPOPLPUSH source destination | 移除列表的最後一個元素,並將該元素添加到另一個列表並返回 |
4.字符串集合(set)
存儲Set和List類型不同的是,Set集合中不允許出現重複的元素
Set可包含的最大元素數量是4294967295
存儲set常用命令:
添加/刪除元素
獲取集合中的元素
集合中的差集運算
集合中的交集運算
集合中的並集元算
擴展命令
存儲Set使用場景:
跟蹤一些唯一性數據
用於維護數據對象之間的關聯關係
語法 | 解釋 | 例子 |
---|---|---|
SADD key member1 [member2] | 向集合添加一個或多個成員 | |
SMEMBERS key | 返回集合中的所有成員 | |
SCARD key | 獲取集合的成員數 | |
SRANDMEMBER key [count] | 返回集合中一個或多個隨機數 | |
SREM key member1 [member2] | 移除集合中一個或多個成員 | |
SISMEMBER key member | 判斷 member 元素是否是集合 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 集合中 |
5.有序字符串集合(sorted set)
存儲Sorted-Set
Sorted-Set和Set的區別
Sorted-Set中的成員在集合中的位置是有序的
存儲Sorted-set常用命令
添加元素
獲得元素
刪除元素
範圍查詢
擴展命令
Sorted-Set使用場景:
大型在線遊戲積分排行榜
構建索引數據
語法 | 解釋 | 例子 |
---|---|---|
ZADD key score1 member1 [score2 member2] | 向有序集合添加一個或多個成員,或者更新已存在成員的分數 | |
ZRANGE key start stop [WITHSCORES] | 通過索引區間返回有序集合指定區間內的成員 | |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] | 通過分數返回有序集合指定區間內的成員 | |
ZREVRANGE key start stop [WITHSCORES] | 返回有序集中指定區間內的成員,通過索引,分數從高到低 | |
ZCARD key | 獲取有序集合的成員數 | |
ZCOUNT key min max | 計算在有序集合中指定區間分數的成員數 | |
ZREM key member [member …] | 移除有序集合中的一個或多個成員 | |
ZREMRANGEBYRANK key start stop | 移除有序集合中給定的排名區間的所有成員 | |
ZREMRANGEBYSCORE key min max | 移除有序集合中給定的分數區間的所有成員 | |
ZINCRBY key increment member | 有序集合中對指定成員的分數加上增量 increment |