1. 程式人生 > >尚矽谷redis學習4-資料型別

尚矽谷redis學習4-資料型別

  redis的資料型別包括String,Hash(類似於JAVA裡的map),List,Set,Zset(sorted Set)

  String(字串)
  string是redis最基本的型別,你可以理解成與Memcached一模一樣的型別,一個key對應一個value。
  string型別是二進位制安全的。意思是redis的string可以包含任何資料。比如jpg圖片或者序列化的物件 。
  string型別是Redis最基本的資料型別,一個redis中字串value最多可以是512M

  Hash(雜湊)
  Redis hash 是一個鍵值對集合。
  Redis hash是一個string型別的field和value的對映表,hash特別適合用於儲存物件。
  類似Java裡面的Map<String,Object>

  List(列表)
  Redis 列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊)。
  它的底層實際是個連結串列

  Set(集合)
  Redis的Set是string型別的無序集合。它是通過HashTable實現實現的

  zset(sorted set:有序集合)
  Redis zset 和 set 一樣也是string型別元素的集合,且不允許重複的成員。
  不同的是每個元素都會關聯一個double型別的分數。
  redis正是通過分數來為集合中的成員進行從小到大的排序。zset的成員是唯一的,但分數(score)卻可以重複。

  www.redisdoc.com有全部命令

  

 

 

  但一般用不到這麼多,我們可以看一下常用的

  Key

  String

  List

   Set

  Hash

  Zset

  下面再說一說必須掌握的一些命令

  Key

  String

  下面具體說說

  getrange/setrange

  從零到負一表示全部
 
  setrange

  設定指定區間範圍內的值,格式是setrange key值 具體值

  setex/setnx

  setex:設定帶過期時間的key,動態設定。
  setex 鍵 秒值 真實值

  setnx:只有在 key 不存在時設定 key 的值。

  mset/mget/msetnx

  mset:同時設定一個或多個 key-value 對。

  mget:獲取所有(一個或多個)給定 key 的值。

  msetnx:同時設定一個或多個 key-value 對,當且僅當所有給定 key 都不存在。

  getset

  getset:將給定 key 的值設為 value ,並返回 key 的舊值(old value)。
  簡單一句話,先get然後立即set

  List

  下面來具體說說

  lpop/rpop

  通過索引獲取列表中的元素 lindex key index

  * 從left往right刪除2個值等於v1的元素,返回的值為實際刪除的數量
     *  LREM list3 0 值,表示刪除全部給定的值。零個就是全部值

  ltrim:擷取指定索引區間的元素,格式是ltrim list的key 起始索引 結束索引

  移除列表的最後一個元素,並將該元素新增到另一個列表並返回

  lset

  在list某個已有值的前後再新增具體值

  list insert key before/after value

  效率

  它是一個字串連結串列,left、right都可以插入新增;
  如果鍵不存在,建立新的連結串列;
  如果鍵已存在,新增內容;
  如果值全移除,對應的鍵也就消失了。
  連結串列的操作無論是頭和尾效率都極高,但假如是對中間元素進行操作,效率就很慘淡了。

  Set

  sadd/smembers/sismember

  scard

  獲取集合裡面的元素個數

  srem key value 刪除集合中的元素

  srandmember key num

   *   從set集合裡面隨機取出2個
   *   如果超過最大數量就全部取出,
   *   如果寫的值是負數,比如-3 ,表示需要取出3個,但是可能會有重複值。

  spop key 隨機出棧

  smove key1 key2

  sdiff

  在第一個set裡面而不在後面任何一個set裡面的項

  sinter

  sunion

   Hash

  常用

  kv模式不變,但v是一個鍵值對

  hset/hget/hmset/hmget/hgetall/hdel

  hlen:求長度

  hexists key value的key 看在一個hash中一個key是否存在

  hkeys/hvals

  hincrby/hincrbyfloat

  hsetnx

  Zset(sortedset):有序集合:是在set基礎上,加一個score值,之前set是key v1 v2 v3,現在是key score1 v1 score2 v2 score3 v3

  zadd/zrange

  zrangebyscore

  zrem:刪除元素

  刪除元素,格式是zrem zset的key 項的值,項的值可以是多個

  zrem key score某個對應值,可以是多個值

  zcard/zcount/zrank/zscore

  zcard :獲取集合中元素個數

  zcount :獲取分數區間內元素個數,zcount key 開始分數區間 結束分數區間

  zrank: 獲取value在zset中的下標位置

  zscore:按照值獲得對應的分數

  zrevrank

  正序、逆序獲得下標索引值

  zrevrange

  zrevrangebyscore