Redis數據類型
Redis支持5種數據類型,它們描述如下:
Strings - 字符串
Redis的字符串是字節序列。在Redis中字符串是二進製安全的,這意味著他們有一個已知的長度,是冇有任何特殊字符終止決定的,所以可以存儲任何東西,最大長度可達512兆。
例子
redis 127.0.0.1:6379> SET name "yiibai" OK redis 127.0.0.1:6379> GET name "yiibai"
在上麵的例子使用Redis命令set和get,Redis的名稱是yiibai的鍵存儲在Redis的字符串值。
注:字符串值可以存儲最大512兆字節的長度。
Hashes - 哈希值
Redis的哈希鍵值對的集合。 Redis的哈希值是字符串字段和字符串值之間的映射,所以它們被用來表示對象
例子
redis 127.0.0.1:6379> HMSET user:1 username yiibai password yiibai points 200 OK redis 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "yiibai" 3) "password" 4) "yiibai" 5) "points" 6) "200"
在上麵的例子中的哈希數據類型,用於存儲包含用戶的基本信息用戶的對象。這裡HMSET,HEXTALL對於Redis 命令 user:1 是鍵。
每個哈希可存儲多達232 - 1個 字段 - 值對(超過4十億)。
Lists - 列表
Redis的列表是簡單的字符串列表,排序插入順序。可以添加元素到Redis列表的頭部或尾部。
例子
redis 127.0.0.1:6379> lpush tutoriallist redis (integer) 1 redis 127.0.0.1:6379> lpush tutoriallist mongodb (integer) 2 redis 127.0.0.1:6379> lpush tutoriallist rabitmq (integer) 3 redis 127.0.0.1:6379> lrange tutoriallist 0 10 1) "rabitmq" 2) "mongodb" 3) "redis"
列表的最大長度為232- 1元素(4294967295,每個列表中的元素超過4十億)。
Sets - 集合
Redis集合是字符串的無序集合。在Redis中可以添加,刪除和測試文件是否存在在O(1)的時間複雜度的成員。
例子
redis 127.0.0.1:6379> sadd tutoriallist redis (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist mongodb (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist rabitmq (integer) 1 redis 127.0.0.1:6379> sadd tutoriallist rabitmq (integer) 0 redis 127.0.0.1:6379> smembers tutoriallist 1) "rabitmq" 2) "mongodb" 3) "redis"
注意:在上麵的例子中rabitmq設置屬性加兩次,但由於唯一性隻加一次。
成員中集最大數量為232 - 1(4294967295,集合成員超過4十億)。
集合排序
Redis的集合排序類似於Redis集合,字符串不重複的集合。不同的是,一個有序集合的每個成員關聯分數,用於以便采取有序set命令,從最小的到最大的分數有關。雖然成員都是獨一無二的,分數可能會重複。
例子
redis 127.0.0.1:6379> zadd tutoriallist 0 redis (integer) 1 redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000 1) "redis" 2) "mongodb" 3) "rabitmq"