一,安裝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客戶端的關鍵字的處理,以及五種數據類型之一的字符串類型的常見方法。
