標籤:
一,安裝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有一些方法
r.del(‘name‘)
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‘
r.randomkey
- 將key重新命名為newkey,如果key與newkey相同,將返回一個錯誤。如果newkey已經存在,則值將被覆蓋。
r.rename ‘name‘, ‘new_name‘
傳回值:
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用戶端學習(一)