06.15 1、Redis系列——Redis簡介

Redis是一個遠程內存數據庫,不僅性能強勁,而且還具有複製特性以及為解決問題而生的獨一無二的數量模型。Redis提供了5中不同類型的數據結構。除此之外,通過複製,持久化和客戶端分片等特性,用戶可以很方便地將Redis擴展成一個能夠包含數百GB數據、每秒處理上百萬次請求的系統。

1、Redis系列——Redis簡介

Redis與其他數據庫和軟件的對比

1、Redis系列——Redis簡介

Redis數據結構

Redis中的字符串:

字符串擁有一些和其他鍵值存儲相似的命令,如GET(獲取值),SET(設置值)和DEL(刪除值)。除此之外還提供了一些對字符串的其中一部分內容進行讀取和寫入的命令,以及一些能對字符串存儲的數值執行自增或自減操作的命令,這些後續在進行介紹。

1、Redis系列——Redis簡介

字符串命令

示例:

1、Redis系列——Redis簡介

Redis中的列表:

Redis對鏈表(linked-list)結構的支持使得它在鍵值存儲的世界中的獨樹一幟。一個列表結構可以有序地存儲多個字符串。和表示字符串時使用的方法一樣。

Redis列表可以執行的操作和很多編程語言裡面的列表操作相似,LPUSH和RPUSH分別用於將元素推入列表的左端(left end)和右端(right end);LPOP和RPOP命令分別用於從列表的左端和右端彈出元素;LINDEX命令用於獲取列表在給定位置上的一個元素;LRANGE命令用於獲取列表在給定範圍上的所有元素。

1、Redis系列——Redis簡介

列表命令

示例:

1、Redis系列——Redis簡介

向列表推入新元素後,命令會放回當前列表的長度

1、Redis系列——Redis簡介

使用0為範圍的起始索引,-1為範圍的結束索引,可以取出列表包含的所有元素

1、Redis系列——Redis簡介

使用lindex可以從列表裡取出單個元素,從列表裡面彈出一個元素,被彈出的元素不再存在於列表

Redis的集合:

Redis的集合和列表都可以存儲多個字符串,它們之間的不同在於,列表可以存儲多個相同的字符串,而集合則通過散列表來保證自己存儲的每個字符串都是各不相同的。

因為Redis的集合使用無序方式存儲元素,所以用戶不能像使用列表那樣,將元素推入集合的某一端,或者從集合的某一端彈出元素,不過用戶可以使用SADD命令將元素添加到集合,或者使用SREM命令從集合裡面移除元素。另外還可以通過SISMEMBER命令快速地檢查一個元素是否已經存在於集合中,或者使用SMEMBERS命令獲取集合包含的所有元素(如果元素多那麼命令執行速度可能會很慢,慎用)。

集合除了基本的添加操作和移除操作之外,還支持很多其他操作,比如SINTER,SUNION,SDIFF這3個命令就可以分別執行常見的交集計算,並集計算和差集計算。

1、Redis系列——Redis簡介

集合命令

示例:

  1. 在嘗試將一個元素添加到集合的時候,命令返回1表示元素被成功添加到集合,返回0表示已經存在集合中;
  2. 獲取集合包含的所有元素將得到一個由元素組成的序列;
  3. 檢查一個元素是否存在於集合中;
  4. 在使用命令移除集合中的元素時,命令會返回被移除元素的數量;
1、Redis系列——Redis簡介

Redis的散列:

Redis的散列可以存儲多個鍵值對之間的映射。和字符串 一樣,散列存儲的值既可以是字符串又可以是數字值,並且用戶同樣可以對散列存儲的數字值執行自增操作或者自減操作。

1、Redis系列——Redis簡介

示例:

  1. 在嘗試添加鍵值對到散列的時候,命令會返回一個值來表示給定的鍵是否存在;
  2. 在刪除鍵值對的時候,命令會返回一個值來表示給定的鍵在移除之前是否存在;
  3. 從散列裡面獲取某個鍵的值;
1、Redis系列——Redis簡介

Redis的有序集合:

有序集合和散列一樣,都用於存儲鍵值對:有序集合的鍵被稱為成員(member),每個成員都是各不相同的;

有序集合的值則被稱為分值(score),分值必須為浮點數。

有序集合是Redis裡面唯一一個既可以根據成員訪問元素,又可以根據分值以及分值的排列順序來訪問元素的結構。

1、Redis系列——Redis簡介

示例:

  1. 在嘗試向有序集合添加元素的時候,命令會返回新添加元素的數量;
  2. 在獲取有序集合包含的所有元素時,多個元素會按照分值大小進行排序;
  3. 用戶也可以根據分值來獲取有序集合中的一部分元素;
  4. 在移除有序集合元素的時候,命令會返回被移除元素的數量;
1、Redis系列——Redis簡介


分享到:


相關文章: