本随筆的回答來自 http://www.runoob.com/redis/redis-tutorial.html
另一個不錯的教程: https://www.yiibai.com/redis/redis_quick_guide.html
1. Redis的預設端口号是:
預設端口為6379
可以指定Redis監聽端口,預設端口為6379,作者在自己的一篇博文中解釋了為什麼選用6379作為預設端口,因為6379在手機按鍵上MERZ對應的号碼,而MERZ取自意大利歌女Alessia Merz的名字
2. 如何修改或檢視Redis的配置:
a. 可以通過檢視或者修改 redis.conf 檔案來和檢視修改配置;
b. 可以通過CONFIG GET 屬性名 來檢視某項屬性的配置: CONFIG GET ports
通過CONFIG SET 屬性名 屬性值來修改某項屬性: CONFIG SET ports 6397
3. Redis 支援的資料類型
Redis支援五種資料類型:string(字元串),hash(哈希),list(清單),set(集合)及zset(sorted set:有序集合)。
- string 類型是 Redis 最基本的資料類型,string 類型的值最大能存儲 512MB。
-
Redis hash 是一個鍵值(key=>value)對集合。Redis hash 是一個 string 類型的 field 和 value 的映射表,hash 特别适合用于存儲對象。
使用Redis HMSET, HGET 指令,HMSET 設定兩個 field=>value 對, HGET 擷取對應 field 對應的 value。
每個 hash 可以存儲 232 -1 鍵值對(40多億)。
- Redis 清單是簡單的字元串清單,按照插入順序排序。你可以添加一個元素到清單的頭部(左邊)或者尾部(右邊)。清單最多可存儲 232 - 1 元素 (4294967295, 每個清單可存儲40多億)。
-
Redis的Set是string類型的無序集合。
集合是通過哈希表實作的,是以添加,删除,查找的複雜度都是O(1)。
-
Redis zset 和 set 一樣也是string類型元素的集合,且不允許重複的成員。
不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。
zset的成員是唯一的,但分數(score)卻可以重複。
4. Redis同時支援多少個資料庫?
Redis支援多個資料庫,并且每個資料庫的資料是隔離的不能共享,并且基于單機才有,如果是叢集就沒有資料庫的概念。
Redis是一個字典結構的存儲伺服器,而實際上一個Redis執行個體提供了多個用來存儲資料的字典,用戶端可以指定将資料存儲在哪個字典中。這與我們熟知的在一個關系資料庫執行個體中可以建立多個資料庫類似,是以可以将其中的每個字典都了解成一個獨立的資料庫。
每個資料庫對外都是一個從0開始的遞增數字命名,Redis預設支援16個資料庫(可以通過配置檔案支援更多,無上限),可以通過配置databases來修改這一數字。用戶端與Redis建立連接配接後會自動選擇0号資料庫,不過可以随時使用SELECT指令更換資料庫,如要選擇1号資料庫:
然而這些以數字命名的資料庫又與我們了解的資料庫有所差別。首先Redis不支援自定義資料庫的名字,每個資料庫都以編号命名,開發者必須自己記錄哪些資料庫存儲了哪些資料。另外Redis也不支援為每個資料庫設定不同的通路密碼,是以一個用戶端要麼可以通路全部資料庫,要麼連一個資料庫也沒有權限通路。最重要的一點是多個資料庫之間并不是完全隔離的,比如FLUSHALL指令可以清空一個Redis執行個體中所有資料庫中的資料。綜上所述,這些資料庫更像是一種命名空間,而不适宜存儲不同應用程式的資料。比如可以使用0号資料庫存儲某個應用生産環境中的資料,使用1号資料庫存儲測試環境中的資料,但不适宜使用0号資料庫存儲A應用的資料而使用1号資料庫B應用的資料,不同的應用應該使用不同的Redis執行個體存儲資料。由于Redis非常輕量級,一個空Redis執行個體占用的内在隻有1M左右,是以不用擔心多個Redis執行個體會額外占用很多記憶體。redis> SELECT 1 OK redis [1] > GET foo (nil)
5. Redis 持久化的方式:
RDB 和 AOF
redis提供兩種方式進行持久化,一種是RDB持久化(原理是将Reids在記憶體中的資料庫記錄定時dump到磁盤上的RDB持久化),另外一種是AOF(append only file)持久化(原理是将Reids的記錄檔以追加的方式寫入檔案)。
詳細的介紹
TALK IS CHEAP, SHOW ME THE CODE