1. 程式人生 > >初識Redis系列之三:Redis支持的數據類型及使用

初識Redis系列之三:Redis支持的數據類型及使用

ted print 數據類型 eight 排序 sorted ring hang 無序

支持的數據類型有種:

string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合);

下面分別對這幾種類型進行簡單的Redis存取操作

1:string(字符串)

幾種裏面最常用,也是最簡單的類型,使用方式如下:

redis 127.0.0.1:6379> SET name "runoob"
OK
redis 127.0.0.1:6379> GET name
"runoob"

註意:一個鍵最大能存儲512MB。這個容量已經是相當大了,基本不可能超過,純字符串哪裏會超過512M的,所以放心使用即可!

2:hash(哈希)

哈希是一個鍵名對類型的,鍵和值都是string類型的,適合存儲一個對象,例如我要存儲一個叫zhangsan的人,年齡 26歲,身高180:

127.0.0.1:6379> HMSET zhangsan age 26 height 180
OK
127.0.0.1:6379> HGETALL zhangsan
1) "age"
2) "26"
3) "height"
4) "180"
每個 hash 可以存儲 232 -1 鍵值對(40多億),也完全夠用了

3:list(列表)

Redis 列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)。

redis 127.0.0.1:6379> lpush runoob redis(從最左邊插入)
(integer) 1
redis 127.0.0.1:6379> rpush
runoob mongodb(從最右邊插入) (integer) 2 redis 127.0.0.1:6379> lpush runoob rabitmq(從最左邊插入) (integer) 3 redis 127.0.0.1:6379> lrange runoob 0 10(返回第1個到第10個值,lrange runoob 0 -2->表示從左邊第一個到右邊倒數第二個) 1) "rabitmq"
2) "redis"
3) "mongodb"

4:set(集合)

Redis的Set是string類型的無序集合。無序但唯一,不重復

集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是O(1)。

添加一個string元素到,key對應的set集合中,成功返回1,如果元素已經在集合中返回0,key對應的set不存在返回錯誤。

redis 127.0.0.1:6379> sadd runoob redis mongodb
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd runoob rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers runoob
1) "rabitmq"
2) "mongodb"
3) "redis"

集合中最大的成員數為 232 - 1(4294967295, 每個集合可存儲40多億個成員),完全夠用

5:zset(sorted set:有序集合)

Redis zset 和 set 一樣也是string類型元素的集合,且不允許重復的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

zset的成員是唯一的,但分數(score)卻可以重復。

zadd key score member (語法)
redis 127.0.0.1:6379> zadd runoob 0 redis 1 mongodb
(integer) 2
redis 127.0.0.1:6379> zadd runoob 2 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd runoob 2 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE runoob 0 1000 (從0到1000分按分數排序)

1) "redis"
2) "mongodb"
3) "rabitmq"

初識Redis系列之三:Redis支持的數據類型及使用