redis ruby用戶端學習( 三)

來源:互聯網
上載者:User

標籤:

接上一篇 redis ruby用戶端學習( 二)

對於redis的五種資料類型:字串(String)雜湊(Map)列表(list)集合(sets) 和 有序集合(sorted sets),上一篇介紹了雜湊和列表。

一,集合

  • mset。添加一個或者多個元素到集合(set)裡 
require "redis"r = Redis.newr.mset ‘my_set‘, ‘value1‘
  • scard。返回集合儲存的key的基數 (集合元素的數量).
r.scard ‘my_set‘

返回一個集合與給定集合的差集的元素.

r.sdiff ‘my_set‘, ‘my_set2‘
  • sinter。返回指定所有的集合的成員的交集.
r.sinter ‘my_set‘, ‘my_set2‘
  • sismember。返回成員 member 是否是儲存的集合 key的成員.
r.sismember ‘my_set‘, ‘value2‘
  • smembers。返回key集合所有的元素.
r.smembers ‘my_set‘
  • smove。

  將membersource集合移動到destination集合中. 對於其他的用戶端,在特定的時間元素將會作為source或者destination集合的成員出現.

  如果source 集合不存在或者不包含指定的元素,這smove命令不執行任何操作並且返回0.否則對象將會從source集合中移除,並添加到destination集合中去,如果destination集合已經存在該元素,則smove命令僅將該元素充source集合中移除.

  如果source destination不是集合類型,則返回錯誤.

r.smove ‘my_set2‘, ‘my_set‘,  ‘temp‘
  • srem。

  在key集合中移除指定的元素. 如果指定的元素不是key集合中的元素則忽略 如果key集合不存在則被視為一個空的集合,該命令返回0.

  如果key的類型不是一個集合,則返回錯誤.

r.srem ‘my_set‘, ‘temp‘
  • sunion。

  返回給定的多個集合的並集中的所有成員.

r.sunion ‘my_set‘, ‘my_set2‘

二,有序集合

  • zadd。

  該命令添加指定的成員到key對應的有序集合中,每個成員都有一個分數。你可以指定多個分數/成員組合。如果一個指定的成員已經在對應的有序集合中了,那麼其分數就會被更新成最新的,並且該成員會重新調整到正確的位置,以確保集合有序。如果key不存在,就會建立一個含有這些成員的有序集合,就好像往一個空的集合中添加一樣。如果key存在,但是它並不是一個有序集合,那麼就返回一個錯誤。

  分數的值必須是一個表示數位字串,並且可以是double類型的浮點數。

r.zadd ‘z_set‘, 3,‘three‘
  • zcard。返回key的有序集元素個數。
r.zcard ‘z_set‘
  • zount。返回有序集key中,score值在min和max之間(預設包括score值等於min或max)的成員。
r.zcount ‘z_set‘,1,3
  • zincrby。

  為有序集key的成員member的score值加上增量increment。如果key中不存在member,就在key中添加一個member,score是increment(就好像它之前的score是0.0)。如果key不存在,就建立一個只含有指定member成員的有序集合。

  當key不是有序集類型時,返回一個錯誤。

  score值必須是字串表示的整數值或雙精確度浮點數,並且能接受double精度的浮點數。也有可能給一個負數來減少score的值。

r.zincrby ‘z_set‘,10,‘two‘

 

  • zrange。

  返回有序集key中,指定區間內的成員。其中成員按score值遞增(從小到大)來排序。具有相同score值的成員按字典序來排列。

  如果你需要成員按score值遞減(score相等時按字典序遞減)來排列,請使用ZREVRANGE命令。 下標參數start和stop都以0為底,也就是說,以0表示有序集第一個成員,以1表示有序集第二個成員,以此類推。 你也可以使用負數下標,以-1表示最後一個成員,-2表示倒數第二個成員,以此類推。

  超出範圍的下標並不會引起錯誤。如果start的值比有序集的最大下標還要大,或是start > stop時,ZRANGE命令只是簡單地返回一個空列表。另一方面,假如stop參數的值比有序集的最大下標還要大,那麼Redis將stop當作最大下標來處理。

r.zrange ‘z_set‘,1, -1
  • zrank。

  返回有序集key中成員member的排名。其中有序整合員按score值遞增(從小到大)順序排列。排名以0為底,也就是說,score值最小的成員排名為0。

r.zrank ‘z_set‘,‘two‘
  • zrem。從排序的集合中刪除一個成員
r.zrem ‘z_set‘,‘two‘
  • zrank。返回有序集key中,成員member的score值。
r.zrank ‘z_set‘,‘five‘

小結:

本次主要介紹了redis ruby用戶端五種資料類型中集合和有序集合的常見方法。

redis ruby用戶端學習( 三)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.