redis之字串型別(string)--計數器實現

loophome發表於2015-09-16

字串型別是redis最基本的型別,如果僅僅使用字串型別,redis和memcache操作非常相近。唯一不同就是redis字串可以支援512M,而memcache最多隻能支援1M。

例子:設定和獲取字串的值

> set str_name lizhibin
OK
> get str_name
"lizhibin"

S.N 命令 & 描述
1 SET key value 
此命令用於在指定鍵設定值
2 GET key 
鍵對應的值。
3 GETRANGE key start end 
得到字串的子字串存放在一個鍵
4 GETSET key value
設定鍵的字串值,並返回舊值
5 GETBIT key offset
返回儲存在鍵位值的字串值的偏移
6 MGET key1 [key2..]
得到所有的給定鍵的值
7 SETBIT key offset value
設定或清除該位在儲存在鍵的字串值偏移
8 SETEX key seconds value
鍵到期時設定值
9 SETNX key value
設定鍵的值,只有當該鍵不存在
10 SETRANGE key offset value
覆蓋字串的一部分從指定鍵的偏移
11 STRLEN key
得到儲存在鍵的值的長度
12 MSET key value [key value ...]
設定多個鍵和多個值
13 MSETNX key value [key value ...] 
設定多個鍵多個值,只有在當沒有按鍵的存在時
14 PSETEX key milliseconds value
設定鍵的毫秒值和到期時間
15 INCR key
增加鍵的整數值一次
16 INCRBY key increment
由給定的數量遞增鍵的整數值
17 INCRBYFLOAT key increment
由給定的數量遞增鍵的浮點值
18 DECR key
遞減鍵一次的整數值
19 DECRBY key decrement
由給定數目遞減鍵的整數值
20 APPEND key value
追加值到一個鍵
參考網址(http://www.yiibai.com/redis/redis_strings.html

具體的操作,這裡不列舉,看看文件就可以了,我們來看看,redis的字串可以實現什麼好玩的功能。

1)實現計數器

計數器,簡單來說是一個自增長的數值,比如使用者的投票數,網站的訪問次數等等。以往自增長ID,可以通過mysql的自增主鍵實現,但是效能卻不高,而且採用分庫分表策略的時候,無法獲取唯一的自增ID。通過redis字串型別,可以實現一個簡單的計數器,貼上虛擬碼!

return incr auto_number
incr命令是增加鍵的整數值一次,如果鍵沒有被設定,則設定為1,返回自增後的數值。這裡利用了redis的原子性,即同一個鍵只允許一個客戶端操作,確保自增值準確。




相關文章