Redis的五種數據類型(二)

 【上海校區】Redis的五種數據類型(二)
                                      5種數據類型:字符串、哈希、鏈表、集合、有序集合。
一、集合類型set
在Redis中,我們可以將Set類型看作爲沒有排序的字符集合,和List類型一樣,我們也可以在該類型的數據值上
執行添加、刪除或判斷某一元素是否存在等操作。需要說明的是,這些操作的時間複雜度爲O(1),即常量時間內完成次操作。
Set可包含的最大元素數量是4294967295。和List類型不同的是,Set集合中不允許出現重複的元素。
1、集合類型常用命令

(1)設置值  sadd key values[value1,value2…]
向set中添加數據,如果該key的值已有則不會重複添加
127.0.0.1:6379> sadd myset zhagnsan lisi wangwu
(integer) 3
127.0.0.1:6379>

(2)獲取值】smembers key
獲取set中所有的成員
127.0.0.1:6379> smembers myset
1) "wangwu"
2) "lisi"
3) "zhagnsan"
127.0.0.1:6379>

(3)刪除值】 srem key members[member1、member2…]
刪除set中指定的成員
127.0.0.1:6379> srem myset wangwu lisi
(integer) 2
127.0.0.1:6379> smembers myset
1) "zhagnsan"
127.0.0.1:6379>

二、有序集合sorted set
Redis有序集合和集合一樣也是string類型元素的集合,且不允許重複的成員。它用來保存需要排序的數據。
例如排行榜,一個班的語文成績,一個公司的員工工資,一個論壇的帖子等。
有序集合中,每個元素都帶有score(權重),以此來對元素進行排序。它有三個元素:key、member和score。
以語文成績爲例,key是考試名稱(期中考試、期末考試等),member是學生名字,score是成績。
有序集合有兩大基本用途:排序和聚合
1、有序集合的常用命令

(1)設置值】zadd key score member[score1 member1,score2  member2…]
往有序集合中添加元素: score member
127.0.0.1:6379> zadd scores 60 chinese 100 english 80 math
(integer) 3
127.0.0.1:6379>

(2)獲取集合成員數】zcard key
127.0.0.1:6379> zcard scores
(integer) 3
127.0.0.1:6379>

(3)查詢集合中的元素】zrange key start stop [withscores]
127.0.0.1:6379> zrange scores 0 2
1) "chinese"
2) "math"
3) "english"
127.0.0.1:6379> zrange scores 0 2 withscores
1) "chinese"
2) "60"
3) "math"
4) "80"
5) "english"
6) "100"
127.0.0.1:6379> zrange scores 0 -1
1) "chinese"
2) "math"
3) "english"
127.0.0.1:6379>

(4)查詢集合中的元素】 zrem key member[member1 ... ]
127.0.0.1:6379> zrem scores math english
(integer) 2
127.0.0.1:6379> zrange scores 0 -1
1) "chinese"
127.0.0.1:6379>

三、Redis的通用命令
(1)【查詢key】 keys pattern
獲取所有與pattern匹配的key,返回所有與該key匹配的keys。*表示任意一個或多個字符,?表示任意一個字符
127.0.0.1:6379> keys *
1) "stu"
2) "strs"
3) "mylist"
4) "scores"
5) "cityData"
6) "stus"
7) "myset"
8) "name"
127.0.0.1:6379> keys name
1) "name"
127.0.0.1:6379>

(2)【根據key值刪除】del key1 key2…   刪除指定key值的數據
127.0.0.1:6379> del company
(integer) 1

(3) 【判斷key值是否存在】exists key
判斷該key是否存在,1代表存在,0代表不存在
127.0.0.1:6379> exists compnay
(integer) 0
127.0.0.1:6379> exists mylist
(integer) 1
127.0.0.1:6379>

(4)【獲取指定key的數據類型】type key
獲取指定key的類型。該命令將以字符串的格式返回。 返回的字符串爲string、list、set、hash,如果key不存在返回none
127.0.0.1:6379> type name
string
127.0.0.1:6379> type strs
list
127.0.0.1:6379> type stu
hash
127.0.0.1:6379> type myset
set
127.0.0.1:6379> type scores
zset

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章