Redis中數據結構有五種,分別是字符串、鏈表、集合、散列、有序集合,接下來我簡單介紹這五種數據結構以及相應的操作命令。
String
在Redis中,字符串可以存儲三種類型:
- 字節串
- 整數
- 浮點數
常用操作命令:
- set:設置鍵-值
- get:獲得鍵對應的值
- del:刪除給定鍵的值
自增自減命令:
- incr:加一
- incrby:加上某一整數
- decr:減一
- decrby:減去某一個數
- incrbyfloat:加上某一個浮點數。
另外一些命令簡介如下:
列表
Redis支持了列表,使得他在鍵值存儲中獨樹一幟。
常用命令:
- LPUSH:從左邊入列
- RPUSH:從右邊入列
- LPOP:從左邊出列
- RPOP:從右邊出列
- LRANG:給定位置範圍的值
- LINDEX:給定位置的值
高級命令,主要是增加了對命令執行的阻塞:這些命令使得Redis可以實現簡單的消息隊列功能。
集合
集合和列表都可以存儲多個字符串,不同的是集合中的鍵不能重複。
常用命令:
- SADD:添加鍵值
- SMEMEBERS:查詢集合所有元素
- SISMEMEBER:查詢集合是否包含元素
- SREM:移除元素
高級命令,主要支持了操作多個集合:
使用sdiff命令輸出如下:
散列
Redis的散列可以存儲多個鍵值的映射,散列存儲的值既可以是字符串也可以是數字,同樣可執行自增自減操作。
常用操作:
- HSET:設置映射
- HGET:獲得指定鍵的值
- HGETALL:獲得所有鍵值對
- HDEL:刪除鍵值對。
更高級命令:
這些命令和字符串的命令差不多。
如果鍵值對的數量非常龐大,那麼建議使用HKEYS先獲得所有的鍵,然後根據鍵求值。
有序集合
和散列一樣,都用於存儲鍵值對;但是在這裏鍵稱爲成員,值稱爲分值。
常用命令(不做解釋了比較簡單):
- ZADD:
- ZRANGE:
- ZRANGEBYSCORE:分值在某一個範圍。
- ZREM:
有序集合的高級命令比較多,因此功能也比較齊全:
ZINTERSTORE命令
解釋一下有序集合的交集運算:默認使用sum聚合函數,將兩個集合中鍵相同的數值相加。
ZUNIONSTORE命令
有序集合的並集運算:默認使用聚合函數min,將兩個集合中的數做並集處理,並且取對應鍵的最小值。