支持的數據類型有五種: string(字元串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合); 下麵分別對這幾種類型進行簡單的Redis存取操作 1:string(字元串) 幾種裡面最常用,也是最簡單的類型,使用方式如下: 2:hash(哈希) 哈希 ...
支持的數據類型有五種:
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"