1. 程式人生 > >網際網路技術學習29——redis幾種資料型別

網際網路技術學習29——redis幾種資料型別

Redis一共分5中基本資料型別: String、Hash、List、Set、ZSet

String型別

String型別是包含很多種型別的特殊型別,並且是二進位制安全的。比如對序列化的物件進行儲存,比如一張圖片進行二進位制儲存,比如一額簡單的字串數值等等。

  1. 設定值 set name bts(多次設定name的值,後一次會覆蓋前一次)
  2. 取值 get name
  3. 刪除值 del name
  4. setnx name btsNew; nx的意思就是not exists,不覆蓋賦值。
  5. seteex color 10 red;ex的意思是expired,設定有效期,超過10秒後get color 返回控制nil
  6. 一次性獲取和設定多個值mset,mget
  7. 一次性設定值和取值getset name btsNew ; 把原儲存的bts取到並且重新賦值為btsNew
  8. incr和decr:對某個值進行遞增或遞減
  9. incrby和decrby:對某個值進行指定步長的遞增或遞減
  10. append;追加字串 append name Smart後,get name 顯示  btsSmart
  11. strlen key;獲取字串長度 

Hash型別

  hash型別是string型別的field和valur的對映表,或者說是一個string集合。特別適合儲存物件,相比而言,物件存在hash中比在string佔用的空間要小,並方便存取整個物件。

  形如:hset myhash field1 hello (含義:hset是宣告hash集合,myhash是集合名字,field1是欄位名,hello是值);使用hget myhash field1獲取內容,也可以儲存多個值。hmset可以批量儲存多個鍵值對;hmset myhash sex 1 addr beijing,可以使用hmget 獲取多個鍵值對。同樣也有hsetnx、hsetex。

  1. hincryby和hdecrby 集合遞增和遞減
  2. hexists 是否存在key,如果存在返回,不存在返回0
  3. hlen返回hash集合裡所有的鍵數值
  4. hdel刪除指定的hash的field
  5. hkets 返回hash的所有value
  6. hgetall 返回hash裡所有的key和value

 

List型別

list型別是一個連結串列結構的集合,其主要功能有push、pop、獲取元素等。list型別是一個雙端連結串列結構,可進行集合的頭部或者尾部新增刪除元素,可以作為棧,又何以作為佇列。滿足絕大多數需求

  1. lpush 頭部加入,先進先出 形如:lpush liist1 sgm             lpush list1zzt
  2. rpush 尾部加入,先進先出
  3. lrange 獲取佇列元素
  4. linsert 插入元素   形如: insert list3 before {集合已有的元素} {插入的元素}
  5. lset 將制定下標的元素替換掉
  6. lrem 刪除元素,返回刪除個數 形如  lrem list 2 “b” 刪除第二個b    lrem list 2 -1   全部刪除
  7. ltrim 保留制定key的值範圍內的資料 ltrim list 2 4     也可以有-1、-2等表示倒數第一個、倒數第二個
  8. lpop 從list頭部刪除元素,並返回刪除元素
  9. rpop 從list尾部刪除元素,並返回刪除元素
  10. rpoploush 同尾部刪除元素,並從頭部加入剛才刪除的元素
  11. lindex  返回指定list中指定下標位置的元素
  12. llen 返回元素個數

set型別

 

set集合是String型別的無序集合,set是通過hashtable實現的,對集合我們可以取交集、並集、差集

  1. sadd 想名稱為ket的set中新增元素 set集合不允許重複元素,smembers 檢視set集合的元素
  2. srem 刪除集合指定的元素
  3. spop 隨機刪除set集合中的一個元素並返回
  4. sdiff 返回集合間不同的元素,以第一個為標準去比較其他的 例如
    key1 = {a,b,c,d}
    key2 = {c}
    key3 = {a,c,e}
    SDIFF key1 key2 key3 = {b,d} (取key2與key3的並集再取key1的差集)
  5. sdiffstore 將返回的的不同的元素存在另一個集合裡 例如sdiffstore key3 key1 key2(以key1為標準,取key1和key2不同的元素存到key3中)
  6. sintet 返回集合的交集
  7. insterstore 返回集合的交集並存在另一個集合中
  8. sunion 取並集
  9. sunionstore 取並集並存在另一個集合中
  10. smove 從一個set集合移動到另一個set集合 例如 smove set1 set2 a
  11. scard 檢視集合元素個數
  12. sismembers 判斷某個元素是否是集合中的元素
  13. srandmember 隨機返回一個元素

zset型別

  1. zadd 向有序集合中新增一個元素,該元素如果存在,則更新順序  例如 zadd zset1 5 five (5表示順序)
  2. zrange 按照順序顯示zset (場景rank相關的應用)例如 zrange zset1 0 5 withscores 或者 zrange zset1 0 -1 withscores 
  3. zrem 刪除指定zset中的指定元素
  4. zincrby 以指定值去自動遞增或減少
  5. zrangebyscore 找到指定範圍的資料返回
  6. zremrangebyrank 根據下標範圍刪除
  7. zrenrangebuscore 刪除範圍內的所有元素