「Redis 筆記」數據類型

REmote DIctionary Server(Redis),一個 key-value 存儲系統。html

數據類型

Redis 支持五種數據類型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。redis

  • string
    • string 類型是二進制安全的。意思是 redis 的 string 能夠包含任何數據。好比 jpg 圖片或者序列化的對象。
    • string 類型是 Redis 最基本的數據類型,一個鍵最大能存儲 512MB。
    • 相關命令:set, get
      bash 127.0.0.1:6379> set str1 hello OK 127.0.0.1:6379> get str1 "hello"
  • hash
    • hash 是鍵值對的集合。
    • 每一個 hash 能夠存儲 2^32 - 1 個(超過 40 億個)鍵值對。
    • 相關命令:hmset, hmget, hgetall
      bash 127.0.0.1:6379> hmset hashmap1 name hiwangzi blog hiwangzi.com OK 127.0.0.1:6379> hmget hashmap1 name 1) "hiwangzi" 127.0.0.1:6379> hgetall hashmap1 1) "name" 2) "hiwangzi" 3) "blog" 4) "hiwangzi.com"
  • list
    • list 是字符串列表,按插入順序排序
    • 列表的最大長度爲 2^32 - 1 個元素。
    • 相關命令:lpush, lrange
      bash 127.0.0.1:6379> lpush list1 a b (integer) 2 127.0.0.1:6379> lrange list1 0 100 1) "b" 2) "a" 127.0.0.1:6379> lpush list1 c (integer) 3 127.0.0.1:6379> lrange list1 0 2 1) "c" 2) "b" 3) "a"
  • set
    • set 是字符串的無序集合。
    • 添加,刪除和驗證成員是否存在的時間O(1)複雜性。
    • set 的最大成員數量爲 2^32 - 1 個元素。
    • 相關命令:sadd, smembers
      ```bash
      127.0.0.1:6379> sadd set1 a b
      (integer) 2
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "a"
      127.0.0.1:6379> sadd set1 c
      (integer) 1
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"
      127.0.0.1:6379> sadd set1 a
      (integer) 0
      127.0.0.1:6379> smembers set1
      1) "b"
      2) "c"
      3) "a"sql

      # a 被添加了兩次,但集合有惟一屬性,因此只會存儲一個。
      ```mongodb

  • zset
    • zset = sorted set
    • Redis可排序集合相似於Redis集合,是不重複的字符集合。 不一樣之處在於,排序集合的每一個成員都與分數相關聯,這個分數用於按最小分數到最大分數來排序的排序集合。雖然成員是惟一的,但分數值能夠重複。
    • 相關命令:zadd, zrange, zrangebyscore
      bash 127.0.0.1:6379> zadd zset_test 0 redis (integer) 1 127.0.0.1:6379> zadd zset_test 0 mongodb (integer) 1 127.0.0.1:6379> zadd zset_test 1 sqllite (integer) 1 127.0.0.1:6379> zadd zset_test 1 sqllite (integer) 0 127.0.0.1:6379> zrange zset_test 0 1000 1) "mongodb" 2) "redis" 3) "sqllite" 127.0.0.1:6379> zrangebyscore zset_test 0 1000 1) "mongodb" 2) "redis" 3) "sqllite"

參考

相關文章
相關標籤/搜索