redis ruby用戶端學習( 二)

來源:互聯網
上載者:User

標籤:

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

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

 

1,雜湊(Map)

 

  • hset。設定 key 指定的雜湊集中指定欄位的值。如果 key 指定的雜湊集不存在,會建立一個新的雜湊集並與 key 關聯。如果欄位在雜湊集中存在,它將被重寫。

 

require "redis"r = Redis.newr.hset ‘my_hash‘, ‘field1‘, ‘001‘
  • hget。返回 key 指定的雜湊集中該欄位所關聯的值
r.hget ‘my_hash‘, ‘field1‘
  • hdel。從 key 指定的雜湊集中移除指定的域。在雜湊集中不存在的域將被忽略。如果 key 指定的雜湊集不存在,它將被認為是一個空的雜湊集,該命令將返回0。
r.hdel ‘my_hash‘, ‘field1‘
  • hexists。返回欄位是否是 key 指定的雜湊集中存在的欄位。
r.hexists ‘my_hash‘, ‘field1‘
  • hgetall。返回 key 指定的雜湊集中所有的欄位和值。
r.hgetall ‘my_hash‘
  • hincrby。增加 key 指定的雜湊集中指定欄位的數值。
r.hincrby ‘my_hash‘, ‘field1‘,5
  • hkeys。返回 key 指定的雜湊集中所有欄位的名字。
r.hkeys ‘my_hash‘
  • hvals。返回 key 指定的雜湊集中所有欄位的值。
r.hvals ‘my_hash‘
  • hlen。返回 key 指定的雜湊集包含的欄位的數量。
r.hlen ‘my_hash‘
  • hmget。對於雜湊集中不存在的每個欄位,返回 nil 值。因為不存在的keys被認為是一個空的雜湊集,對一個不存在的 key 執行 hmget 將返回一個只含有 nil 值的列表。
r.hmget ‘my_hash‘,‘field2‘, ‘field3‘
  • hmset。設定 key 指定的雜湊集中指定欄位的值。該命令將重寫所有在雜湊集中存在的欄位。如果 key 指定的雜湊集不存在,會建立一個新的雜湊集並與 key 關聯。
r.hmset ‘my_hash‘,‘field4‘, ‘004‘, ‘field5‘, ‘005‘

2,列表(list)

  • lpush。將所有指定的值插入到存於 key 的列表的頭部(左邊)。如果 key 不存在,那麼在進行 push 操作前會建立一個空列表。 如果 key 對應的值不是一個 list 的話,那麼會返回一個錯誤。
r.lpush "my_list", ‘value1‘
  • lindex。返回列表裡的元素的索引 index 儲存在 key 裡面。 下標是從0開始索引的,所以 0 是表示第一個元素, 1 表示第二個元素,並以此類推。 負數索引用於指定從列表尾部開始索引的元素。在這種方法下,-1 表示最後一個元素,-2 表示倒數第二個元素,並以此往前推。
r.lindex "my_list", 1
  • linsert。

  把 value 插入存於 key 的列表中在基準值 pivot 的前面或後面。

  當 key 不存在時,這個list會被看作是空list,任何操作都不會發生。

  當 key 存在,但儲存的不是一個list的時候,會返回error。

r.linsert ‘my_list‘, ‘before‘, ‘value1‘, ‘value3‘r.linsert ‘my_list‘, ‘after‘, ‘value1‘, ‘value4‘
  • llen。返回儲存在 key 裡的list的長度。 如果 key 不存在,那麼就被看作是空list,並且返回長度為 0。 當儲存在 key 裡的值不是一個list的話,會返回error。
r.llen "my_list"
  • lpop。移除並且返回 key 對應的 list 的第一個元素(左邊)。
r.lpop "my_list"
  • lrange。

  返回儲存在 key 的列表裡指定範圍內的元素。 start 和 end 位移量都是基於0的下標,即list的第一個元素下標是0(list的表頭),第二個元素下標是1,以此類推。

  位移量也可以是負數,表示位移量是從list尾部開始計數。 例如, -1 表示列表的最後一個元素,-2 是倒數第二個,以此類推。

r.lrange "my_list", 0, -1

  

  • lrem。

  從存於 key 的列表裡移除前 count 次出現的值為 value 的元素。 這個 count 參數通過下面幾種方式影響這個操作:

    • count > 0: 從頭往尾移除值為 value 的元素。
    • count < 0: 從尾往頭移除值為 value 的元素。
    • count = 0: 移除所有值為 value 的元素。

  比如, LREM list -2 "hello" 會從存於 list 的列表裡移除最後兩個出現的 "hello"

  需要注意的是,如果list裡沒有存在key就會被當作空list處理,所以當 key 不存在的時候,這個命令會返回 0

r.lrange "my_list", 0, -1 #=> ["value1", "value1", "value1", "value1", "value3", "value1", "value4"] r.lrem "my_list", 2, "value1"r.lrange "my_list", 0, -1# => ["value1", "value1", "value3", "value1", "value4"] 
  • lset。設定 index 位置的list元素的值為 value。index超出範圍時會返回一個error。
r.lrange "my_list", 0, -1 # => ["value1", "value1", "value3", "value1", "value4"] r.lset "my_list", 0, "value5"r.lrange "my_list", 0, -1# => ["value5", "value1", "value3", "value1", "value4"] 
  • rpop。移除並返回存於 key 的 list 的最後一個元素。
r.rpop "my_list"
  • rpush。向存於 key 的列表的尾部插入所有指定的值。如果 key 不存在,那麼會建立一個空的列表然後再進行 push 操作。 當 key 儲存的不是一個列表,那麼會返回一個錯誤。
r.rpush "my_list", ‘value6‘

小結:

本次主要介紹了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.