redis之字串型別(string)--計數器實現
字串型別是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 追加值到一個鍵 |
具體的操作,這裡不列舉,看看文件就可以了,我們來看看,redis的字串可以實現什麼好玩的功能。
1)實現計數器
計數器,簡單來說是一個自增長的數值,比如使用者的投票數,網站的訪問次數等等。以往自增長ID,可以通過mysql的自增主鍵實現,但是效能卻不高,而且採用分庫分表策略的時候,無法獲取唯一的自增ID。通過redis字串型別,可以實現一個簡單的計數器,貼上虛擬碼!
return incr auto_number
incr命令是增加鍵的整數值一次,如果鍵沒有被設定,則設定為1,返回自增後的數值。這裡利用了redis的原子性,即同一個鍵只允許一個客戶端操作,確保自增值準確。
相關文章
- Redis 五大資料型別之 String(字串)Redis大資料資料型別字串
- String:字串型別字串型別
- Redis 設計與實現 6:五大資料型別之字串Redis大資料資料型別字串
- redis-6.string型別Redis型別
- Redis筆記(4)redis五大資料型別1----string(字串)Redis筆記大資料資料型別字串
- Redis資料結構(一)-Redis的資料儲存及String型別的實現Redis資料結構型別
- 2、Redis的資料型別-stringRedis資料型別
- Redis 設計與實現 9:五大資料型別之集合Redis大資料資料型別
- 操作型別之字串型別字串
- Redis中String型別常用命令Redis型別
- Redis 設計與實現 8:五大資料型別之雜湊Redis大資料資料型別
- 利用Redis實現高併發計數器Redis
- Redis 設計與實現 3:字串 SDSRedis字串
- Redis之StringRedis
- C++之string型別詳解C++型別
- String 型別型別
- Redis字串型別內部編碼剖析Redis字串型別
- redis string 簡單動態字串Redis字串
- Redis 資料型別及其使用場景 String 篇Redis資料型別
- 帶你掌握Redis資料型別:string和HashRedis資料型別
- 什麼是.NET的強型別字串(Strongly typed string)?型別字串
- C++ 字串字面值和 string 不是同一型別C++字串型別
- 資料型別之字串篇資料型別字串
- 基本資料型別之字串資料型別字串
- Javascrip 之 字串處理 & 定時器 & 型別轉換Java字串定時器型別
- 如何實現Redis裡的自增ID計數器Redis
- Redis中一個String型別引發的慘案Redis型別
- 1.1.1python基本資料型別之數字和字串Python資料型別字串
- Redis 實戰篇:巧用資料型別實現億級資料統計Redis資料型別
- JavaScript 字串轉換數值型別JavaScript字串型別
- Map和String型別之間的轉換型別
- Golang的滑動視窗計數器Redis限速實現GolangRedis
- Redis設計於實現之字典Redis
- Redis 設計與實現 7:五大資料型別之列表Redis大資料資料型別
- Java中Switch支援String字串?為什麼不支援long型別?Java字串型別
- BigDecimal轉為String型別、int型別Decimal型別
- Redis的String型別,原來這麼佔記憶體Redis型別記憶體
- string型別介紹型別
- TS 分析字串實現 Commander.js 自動強型別字串JS型別