1. 程式人生 > >Redis的五種資料結構及其常見命令

Redis的五種資料結構及其常見命令

        Redis可以儲存鍵值與5種不同資料結構型別之間的對映。5種資料結構分別為字串(STRING)、連結串列(LIST)、無序列表(SET)、散列表(HASH)和有序列表(ZSET).

1.STRING(字串)

        常見的字串的命令有:get、set和del等,以下是redis-cli上操作的示例。

2.LIST(連結串列)

        LIST結構的常見命令有:lpush、rpush表示分別將元素推入列表的左端和右端;lpop、rpop命令分別用於從列表的左端和右端彈出元素;lindex命令用於獲取列表在給定位置上的一個元素;lrange命令用於獲取列表在給定範圍上的所有元素。以下是示例:

 

3.SET(無序列表)

       set使用無序方式儲存元素,所以不能像列表那樣,將元素推入集合的某一端,或者從集合的某一端彈出元素。不過set有自己的命令:sadd命令將元素新增到集合,srem命令從集合裡面移除元素,sismember命令可以檢查一個元素是否已經存在於集合中,smembers命令可以獲取集合包含的所有元素(該命令執行速度在元素比較多的時候會比較慢)。sinter命令可以執行交集計算,sunion可以執行並集計算,sdiff可以執行差集計算。

 

4.HASH(無序散列表)

        Redis的雜湊可以儲存多個鍵值對之間的對映。和字串一樣,雜湊儲存的值既可以是字串又可以是數字值,並且可以對雜湊儲存的數字值執行自增操作或者自減操作。常見的命令有:hset表示在雜湊裡面關聯起給定的鍵值對,hset表示獲取指定雜湊鍵的值,hgetall表示獲取雜湊包含的所有鍵值對,hdel表示如果存在散列表中,則移除這個鍵。具體使用示例如下:

5.ZSET(有序集合)

        有序集合和雜湊一樣,都用於儲存鍵值對:有序集合的鍵被稱為成員,每個成員都是各不相同的;有序集合的值被稱為分值,分值必須為浮點數。有序集合時Redis裡面唯一一個既可以根據成員訪問元素,又可以根據分值以及分值的排列順序來訪問元素的結構。常見的命令有:zadd可以將帶有給定分值的成員新增到有序集合裡面;zrange根據元素在有序排列中所處的位置,從有序集合中獲取多個元素;zrangebyscore表示獲取有序集合在給定分值範圍內的所有元素;zrem表示給定成員存在於有序集合,則將它移除。具體操作示例如下:

        注意:在使用插入元素命令zadd時與hash不同,而是把成員和分值位置調換,即把鍵值位置調換。比如zadd set 13 book,這個命令中13表示分值,book表示鍵成員。