1. 程式人生 > >redis 菜鳥教程筆記摘抄整理

redis 菜鳥教程筆記摘抄整理

很好的IT教程網站===》菜鳥教程

但是細分太多模組,不太好檢視,決定摘抄整理,方便自己學習~~

 

redis的各個資料型別應用場景:

型別 簡介 特性 場景
String(字串) 二進位制安全 可以包含任何資料,比如jpg圖片或者序列化的物件,一個鍵最大能儲存512M 隨便儲存呀呀呀哎呀
Hash(字典) 鍵值對集合,即程式語言中的Map型別 適合儲存物件,並且可以像資料庫中update一個屬性一樣只修改某一項屬性值(Memcached中需要取出整個字串反序列化成物件修改完再序列化存回去) 儲存、讀取、修改使用者屬性
List(列表) 連結串列(雙向連結串列) 增刪快,提供了操作某一段元素的API 1,最新訊息排行等功能(比如朋友圈的時間線) 2,訊息佇列
Set(集合) 雜湊表實現,元素不重複 1、新增、刪除,查詢的複雜度都是O(1) 2、為集合提供了求交集、並集、差集等操作 1、共同好友 2、利用唯一性,統計訪問網站的所有獨立ip 3、好友推薦時,根據tag求交集,大於某個閾值就可以推薦
Sorted Set(有序集合) 將Set中的元素增加一個權重引數score,元素按score有序排列 資料插入集合時,已經進行天然排序 1、排行榜 2、帶權重的訊息佇列

 

PS:注意:Redis支援多個數據庫,並且每個資料庫的資料是隔離的不能共享,並且基於單機才有,如果是叢集就沒有資料庫的概念。

Redis是一個字典結構的儲存伺服器,而實際上一個Redis例項提供了多個用來儲存資料的字典,客戶端可以指定將資料儲存在哪個字典中。這與我們熟知的在一個關係資料庫例項中可以建立多個數據庫類似,所以可以將其中的每個字典都理解成一個獨立的資料庫。

每個資料庫對外都是一個從0開始的遞增數字命名,Redis預設支援16個數據庫(可以通過配置檔案支援更多,無上限),可以通過配置databases來修改這一數字。客戶端與Redis建立連線後會自動選擇0號資料庫,不過可以隨時使用SELECT命令更換資料庫,如要選擇1號資料庫:

redis> SELECT 1
OK
redis [1] > GET foo
(nil)

然而這些以數字命名的資料庫又與我們理解的資料庫有所區別。首先Redis不支援自定義資料庫的名字,每個資料庫都以編號命名,開發者必須自己記錄哪些資料庫儲存了哪些資料。另外Redis也不支援為每個資料庫設定不同的訪問密碼,所以一個客戶端要麼可以訪問全部資料庫,要麼連一個數據庫也沒有許可權訪問。最重要的一點是多個數據庫之間並不是完全隔離的,比如FLUSHALL命令可以清空一個Redis例項中所有資料庫中的資料。綜上所述,這些資料庫更像是一種名稱空間,而不適宜儲存不同應用程式的資料。比如可以使用0號資料庫儲存某個應用生產環境中的資料,使用1號資料庫儲存測試環境中的資料,但不適宜使用0號資料庫儲存A應用的資料而使用1號資料庫B應用的資料,不同的應用應該使用不同的Redis例項儲存資料。由於Redis非常輕量級,一個空Redis例項佔用的內在只有1M左右,所以不用擔心多個Redis例項會額外佔用很多記憶體。

redis的key:

Redis 鍵(key)

Redis 鍵命令用於管理 redis 的鍵。

語法

Redis 鍵命令的基本語法如下:

redis 127.0.0.1:6379> COMMAND KEY_NAME

例項

redis 127.0.0.1:6379> SET runoobkey redis
OK
redis 127.0.0.1:6379> DEL runoobkey
(integer) 1

在以上例項中 DEL 是一個命令, runoobkey 是一個鍵。 如果鍵被刪除成功,命令執行後輸出 (integer) 1,否則將輸出 (integer) 0


Redis keys 命令

下表給出了與 Redis 鍵相關的基本命令:

序號 命令及描述
1 DEL key
該命令用於在 key 存在時刪除 key。
2 DUMP key 
序列化給定 key ,並返回被序列化的值。
3 EXISTS key 
檢查給定 key 是否存在。
4 EXPIRE key seconds
為給定 key 設定過期時間,以秒計。
5 EXPIREAT key timestamp 
EXPIREAT 的作用和 EXPIRE 類似,都用於為 key 設定過期時間。 不同在於 EXPIREAT 命令接受的時間引數是 UNIX 時間戳(unix timestamp)。
6 PEXPIRE key milliseconds 
設定 key 的過期時間以毫秒計。
7 PEXPIREAT key milliseconds-timestamp 
設定 key 過期時間的時間戳(unix timestamp) 以毫秒計
8 KEYS pattern 
查詢所有符合給定模式( pattern)的 key 。
9 MOVE key db 
將當前資料庫的 key 移動到給定的資料庫 db 當中。
10 PERSIST key 
移除 key 的過期時間,key 將持久保持。
11 PTTL key 
以毫秒為單位返回 key 的剩餘的過期時間。
12 TTL key 
以秒為單位,返回給定 key 的剩餘生存時間(TTL, time to live)。
13 RANDOMKEY 
從當前資料庫中隨機返回一個 key 。
14 RENAME key newkey 
修改 key 的名稱
15 RENAMENX key newkey 
僅當 newkey 不存在時,將 key 改名為 newkey 。
16 TYPE key 
返回 key 所儲存的值的型別。