原文出處:www.yund.tech/zdetail.htm…html
做者: jstarsevenredis
Redis 提供了5種數據類型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合),理解每種數據類型的特色對於redis的開發和運維很是重要。sql
String是Redis的最基本的數據類型,能夠理解爲與 Memcached 如出一轍的類型,即Key-Value型的數據,String類型是二進制安全的,另外 Redis 的 String 能夠包含任何數據,簡單的字符串、複雜的字符串(xml、json)、數字(整數、浮點數)、二進制(圖片、音頻、視頻),一個 Redis 中字符串 value 最多能夠是 512M。json
命令 | 描述 | 用法 |
---|---|---|
SET | 1.將字符串值Value關聯到Key 2.Key已關聯則覆蓋,無視類型 3.本來Key帶有生存時間TTL,那麼TTL被清除 |
SET key value [EX seconds] [PX milliseconds] [NX|XX] |
GET | 1.返回key關聯的字符串值 2.Key不存在返回nil 3.Key存儲的不是字符串,返回錯誤,由於GET只用於處理字符串 |
GET key |
MSET | 1.同時設置一個或多個Key-Value鍵值對 2.某個給定Key已經存在,那麼MSET新值會覆蓋舊值 3.若是上面的覆蓋不是但願的,那麼使用MSETNX命令,全部Key都不存在纔會進行覆蓋 4.MSET是一個原子性操做,全部Key都會在同一時間被設置,不會存在有些更新有些沒更新的狀況 |
MSET key value [key value ...] |
MGET | 1.返回一個或多個給定Key對應的Value 2.某個Key不存在那麼這個Key返回nil |
MGET key [key ...] |
SETEX | 1.將Value關聯到Key 2.設置Key生存時間爲seconds,單位爲秒 3.若是Key對應的Value已經存在,則覆蓋舊值 4.SET也能夠設置失效時間,可是不一樣在於SETNX是一個原子操做,即關聯值與設置生存時間同一時間完成 |
SETEX key seconds value |
SETNX | 1.將Key的值設置爲Value,當且僅當Key不存在 2.若給定的Key已經存在,SEXNX不作任何動做 |
SETNX key value |
- 緩存功能:字符串最經典的使用場景,redis最爲緩存層,Mysql做爲儲存層,絕大部分請求數據都是redis中獲取,因爲redis具備支撐高併發特性,因此緩存一般能起到加速讀寫和下降 後端壓力的做用。
- 計數器:許多運用都會使用redis做爲計數的基礎工具,他能夠實現快速計數、查詢緩存的功能,同時數據能夠一步落地到其餘的數據源。如:視頻播放數系統就是使用redis做爲視頻播放數計數的基礎組件。
- 共享session:出於負載均衡的考慮,分佈式服務會將用戶信息的訪問均衡到不一樣服務器上,用戶刷新一次訪問可能會須要從新登陸,爲避免這個問題能夠用redis將用戶session集中管理,在這種模式下只要保證redis的高可用和擴展性的,每次獲取用戶更新或查詢登陸信息都直接從redis中集中獲取。
- 限速:處於安全考慮,每次進行登陸時讓用戶輸入手機驗證碼,爲了短信接口不被頻繁訪問,會限制用戶每分鐘獲取驗證碼的頻率。
INCR/DECR操做能夠利用Redis自動幫助咱們對一個Key對應的Value進行加減,在實際工做中仍是很經常使用的。後端
INCR/DECR操做在 Redis 中的相關命令:
複製代碼
命令 | 描述 | 用法 |
---|---|---|
INCR | 1)Key中存儲的數字值+1,返回增長以後的值 2)Key不存在,那麼Key的值被初始化爲0再執行INCR 3)若是值包含錯誤類型或者字符串不能被表示爲數字,那麼返回錯誤 4)值限制在64位有符號數字表示以內即-9223372036854775808~9223372036854775807 |
INCR key |
DECR | 1)Key中存儲的數字值-1 2)其他同INCR |
DECR key |
INCRBY | 1)將key所存儲的值加上增量返回增長以後的值 2)其他同INCR |
INCRBY key increment |
DECRBY | 1)將key所存儲的值減去減量decrement 2)其他同INCR |
DECRBY key decrement |
- 原先單機環境中統計在線人數,變成分佈式部署以後可使用INCR/DECR
- 因爲Redis自己極高的讀寫性能,一些秒殺的場景庫存增減能夠基於Redis來作而不是直接操做DB
本文由博客一文多發平臺 OpenWrite 發佈!緩存