redis可以存儲鍵與5種不同數據結構類型之間的映射,這五種數據結構分別爲String(字符串),List(列表),Set(集合),HASH(散列)和ZSET(有序集合).有一部分Redis命令只能對特定的一種或兩種結構使用。
Redis中的字符串
下圖以鍵爲hello、值爲world的字符串爲例,分別標記了方框的各個部分.
字符串擁有一些和其他鍵值存儲相似的命令,比如說GET(獲得),SET(設置)和DEL(刪除值)
具體步驟
1:先set一個key爲hello值爲world的值
之後我們用RedisClient查看數據庫中數據的屬性
之後我們get hello,控制檯會把key爲hello的"world"給輸出過來
然後我們刪除key爲hello的值,響應行數爲1行
之後我們再嘗試獲取一下,redis返回nil(沒有查到)
Redis中的列表
Redis對鏈表結構的支持使得它在鍵值存儲的世界中獨樹一幟。一個列表結構可以有序得存儲多個字符串,和表示字符串時使用的方法一樣。
Redis列表的操作:
RPUSH:將給定值推入列表的右端
LPUSH:將給定值推入列表的左端
LRANGE:獲取列表在給定範圍上的所有值
LINDEX:獲取列表在給定位置上的單個元素
LPOP:從列表左端彈出一個值,並返回被彈出的值
RPOP:從列表右端彈出一個值,並返回被彈出的值
事例:
Redis中的集合
Redis的集合和列表都可以存儲多個字符串,他們之間的不同在於,列表可以存儲多個相同的字符串,而集合通過使用散列表來保證自己存儲的每個字符串都是各有不同的(這些散列表只有鍵,但沒有與鍵相關的值)。
因爲Redis的集合使用無序方式存儲元素,所以用戶不能像使用列表那樣,將元素推入集合的某一段或者從集合的某一端彈出元素,不過用戶可以使用SADD命令將元素添加到集合,或者使用SREM命令從集合裏面移除元素、另外還可以通過SISMEMBER命令快速得檢查一個元素是否已經存在於集合中,或者使用SMEMBERS命令獲取集合包含的所有元素.
案例:
命令列表
Redis中的散列
Redis的散列可以存儲多個鍵值對之間的映射。和字符串一樣,散列存儲的值既可以是字符串又可以是數字只,並且用戶哦他那個樣可以對散列存儲的數字值執行自增操作或者自減操作。
散列的命令:
事例:
Redis中的有序集合
有序集合和散列一樣,都是用於存儲鍵值對:有序集合的鍵被稱爲成員,每個成員(Member)都是各不相同的;而有序集合的值則被稱爲分值(SCORE),分值必須是浮點數。有序集合是Redis裏面唯一一個既可以根據成員訪問元素,又可以根據分值訪問元素,又可以根據分值以及分值的排列順序訪問元素的結構。
分值(score)必須是數字!
memeber成員必須是不同的!
有序集合命令:
事例