redis ruby用戶端學習(一)

來源:互聯網
上載者:User

標籤:

  一,安裝redis伺服器

  自行解決吧,沒什麼好說的。

  二,安裝redis的ruby用戶端

  這裡使用的是redis-rb,自行安裝, https://github.com/redis/redis-rb

  三,串連伺服器

require "redis"r = Redis.new

  這是最簡單的串連方式,其他方式參見github

  四,存取資料

  Redis類中的方法和redis命令是一一對應的。

  所以github上只給了很少的例子,想用其他的方法,可以去參考redis命令。

  redis的值(value)可以是 字串(String), 雜湊(Map), 列表(list), 集合(sets)有序集合(sorted sets)等類型

  下面簡要介紹常用的一些方法。

  1, 關鍵字

  redis是key -value型的,對key有一些方法

  •    刪除一個key:
r.del(‘name‘)
  •   檢查一個key是否存在 
r.exists(‘name‘)
  • 設定key的到期時間(秒數)。如果key已到期,將會被自動刪除,第二個參數的單位為秒。
r.expire(‘name‘,60)
  • expireat 的作用和 expire類似,都用於為 key 設定存留時間。不同在於 EXPIREAT 命令接受的時間參數是 UNIX 時間戳記 Unix timestamp 
r.expireat(‘name2‘,Time.now.to_i+60)
  • pexpire和 expire的作用類似,但是它以毫秒為單位設定 key 的存留時間,而不像 expire 那樣,以秒為單位。
r.pexpire ‘name‘, 1000000
  • pexpireat和 expireat類似,但它以毫秒為單位設定 key 的到期 unix 時間戳記,而不是像 expireat 那樣,以秒為單位。
r.pexpireat ‘name‘, Time.now.to_i+1000000
  • 以秒為單位,返回給定 key 的剩餘存留時間(TTL, time to live)。
r.ttl ‘name‘
  • pttl類似於 ttl ,但它以毫秒為單位返回 key 的剩餘存留時間,而不是像 ttl那樣,以秒為單位。
r.ttl ‘my_test‘
  • 移除給定key的存留時間,將這個 key 從『易失的』(帶存留時間 key )轉換成『持久的』(一個不帶存留時間、永不到期的 key )。
r.persist ‘name‘
  • 從當前資料庫返回一個隨機的key。
r.randomkey
  • 將key重新命名為newkey,如果key與newkey相同,將返回一個錯誤。如果newkey已經存在,則值將被覆蓋。
r.rename ‘name‘, ‘new_name‘
  • type返回 key 所儲存的值的類型。

傳回值:
none (key不存在)
string (字串)
list (列表)
set (集合)
zset (有序集)
hash (雜湊表)

r.type ‘name‘
  • 尋找所有符合給定模式 pattern 的 key 
r.keys(‘n*‘)

  2,字串

  •   存值:
r.set(‘name‘], ‘li‘)#或者r[‘sex‘] = ‘male‘
  •   取值:
r.get(‘name‘)#或者r[‘name‘]
  •  append, 如果 key 已經存在,並且值為字串,那麼這個命令會把 value 追加到原來值(value)的結尾。 如果 key 不存在,那麼它將首先建立一個Null 字元串的key,再執行追加操作,這種情況 append 將類似於 set 操作。
r.append ‘name‘, ‘1111‘
  • getrange擷取儲存在key上的值的一個子字串
r.getrange ‘name‘, 1,3
  • mget 返回所有指定的key的value。對於每個不對應string或者不存在的key,都返回特殊值nil。正因為此,這個操作從來不會失敗。
r.mget ‘name‘, ‘rename‘
  • strlen 返回key的string類型value的長度。如果key對應的非string類型,就返回錯誤。
r.strlen ‘name‘

下面是和統計關係比較密切的:

  • incr對key對應的數字做加1操作。如果key不存在,那麼在操作之前,這個key對應的值會被置為0。如果key有一個錯誤類型的value或者是一個不能表示成數位字串,就返回錯誤。這個操作最大支援在64位有符號的整型數字。

提醒:這是一個string操作,因為Redis沒有專用的數字類型。key對應的string都被解釋成10進位64位有符號的整型來執行這個操作。

Redis會用相應的整數表示方法儲存整數,所以對於表示數位字串,沒必要為了用字串表示整型儲存做額外開銷。

r.set ‘counter‘, ‘123456‘r.incr ‘counter‘
  • 將key對應的數字加decrement。如果key不存在,操作之前,key就會被置為0。如果key的value類型錯誤或者是個不能表示成數位字串,就返回錯誤。這個操作最多支援64位有符號的正型數字。
r.incrby ‘counter‘,100
  • decr對key對應的數字做減1操作。如果key不存在,那麼在操作之前,這個key對應的值會被置為0。如果key有一個錯誤類型的value或者是一個不能表示成數位字串,就返回錯誤。這個操作最大支援在64位有符號的整型數字。
r.set ‘counter‘, ‘123456‘r.decr ‘counter‘
  • decrby將key對應的數字減decrement。如果key不存在,操作之前,key就會被置為0。如果key的value類型錯誤或者是個不能表示成數位字串,就返回錯誤。這個操作最多支援64位有符號的正型數字。
r.decrby ‘counter‘, 100

 

 小結:

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