redis ruby客戶端學習(一)


  一,安裝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 不存在,那么它將首先創建一個空字符串的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客戶端的關鍵字的處理,以及五種數據類型之一的字符串類型的常見方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM