redis除了可以儲存鍵還可以儲存常見的5種資料型別,分別是:string、list
、set
、hash
、zset
。對於redis
的命令有一部分是可以公用的,但是還有一些其他的命令是屬於特殊使用的。
首先看看一張關於redis
的5種資料結構的對比:
redis中的string型別就是乙個由位元組組成的序列,他和其他程式語言或者其他鍵值對儲存提供的字串操作非常相似。
乙個string型別的例項,其中鍵為hello,值為world:
(1)常用命令如下:
(2)redis中的自增命令和自減命令:
(3)除了get
、set
、del
、自增、自減等操作外,redis
還提供了下面一些操作:
1、獲取字串長度
3、設定和獲取字串的某一段內容
4、設定及獲取字串的某一位(bit)
5、批量設定一系列字串的內容
如下圖所示:
(4)應用場景:
string
是最常用的一種資料型別,普通的key/value
儲存都可以歸為此類,value
其實不僅是string
, 也可以是數字:比如想知道什麼時候封鎖乙個ip位址(訪問超過幾次)。incrby
命令讓這些變得很容易,通過原子遞增保持計
redis
中的list
其實就是鍊錶(redis
使用雙端鍊錶實現的list
),相信學過資料結構知識的人都應該能理解其結構。
乙個list型別的例項,列表包含的元素,相同元素可以重複出現:
需要注意的是:乙個list結構可以有序的儲存多個字串,並且是允許元素重複的。
(1)常用命令如下:
lpush
和rpush
命令分別用於將元素推入列表的左端和右端;lpop
和rpop
命令分別用於從列表的左端和右端彈出元素,也就是刪除元素;
其中對於lrange
命令來說,使用0位範圍的起始索引,-1為範圍的結束索引,可以取出列表包含元素的所有元素。
(2)除了上邊比較常用的命令之外,redis列表還可以從列表裡邊移除元素、將元素插入列表中間、將列表修剪至指定長度的命令,以及一些其他命令。
(3)使用場景:
微博 timeline
訊息佇列
redis
的集合和列表都可以儲存多個字串,他們的不同支援在於,列表可以儲存多個相同的字串,而集合通過使用雜湊表來保證自己儲存的每個字串都是各不相同的。
redis的集合使用的是無序的方式儲存元素,所以不可以像list列表那樣,將元素推入集合的某一端,或者從集合的某一端彈出元素。
乙個set集合型別的例項,各不相同的元素,無序排列:
(1)常用命令如下:
(2)除了常見的命令之外,還有交集、並集、差集的計算,如下:
(3)使用場景:
共同好友
redis的雜湊可以儲存多個鍵值對之間的對映。和字串一樣,雜湊儲存的值既可以是字串又可以是數字值,並且使用者同樣可以對雜湊儲存的數字執行自增操作或者是自減操作。
乙個list雜湊型別的例項,是乙個包含兩個鍵值對的雜湊鍵:
(1)常用命令如下:
(2)其他命令包含新增和刪除鍵值對的命令、獲取所有鍵值對的命令、以及對鍵值對的值進行自增和自減操作的命令,如下所示:
有序集合和雜湊一樣,用於儲存鍵值對;有序集合的鍵被稱為成員member,每乙個成員都是獨一無二的;而有序集合的值被稱為分值score,分值必須是浮點數。
有序集合是redis裡面唯一乙個既可以根據成員訪問元素,又可以根據分值以及分值的排序來訪問元素的結構。
乙個有序集合型別的例項,zset-key是乙個包含兩個元素的有序集合鍵:
1)常用命令如下:
redis專題十六 redis的常見幾個解決方案
一 快取預熱 現象 伺服器啟動之後迅速宕機 分析 1 前期準備工作 2 準備工作 3 實施 二 快取雪崩 現象 系統平穩執行過程中,忽然資料庫連線量激增,應用伺服器無法及時處理請求,可能前端頁面也會崩潰,資料庫崩潰,緊接著應用伺服器崩潰,redis集群崩潰,即使重啟資料庫等之後再次瞬間被流程放倒。分...
Redis資料彙總專題
from 很多朋友反映,說nosqlfan上的資料 本篇為redis 部分的資料彙總。保持持續更新。使用redis bitmap進行活躍使用者統計 redis採用不同記憶體分配器碎片率對比 redis優化之網路延遲 redis 資料庫結構設計 使用redis的五個注意事項 利用redis構建高效的實...
Redis資料彙總專題
很多朋友反映,說nosqlfan上的資料 twemproxy twitter 開源的 redis proxy redis 常見的效能問題和解決方法 使用redis bitmap進行活躍使用者統計 redis採用不同記憶體分配器碎片率對比 redis如何處理客戶端連線 redis監控技巧 redis優...