一、初始Redis 1、Redis特性與優點 速度快。redis所有數據都存放於記憶體;是用C語言實現,更加貼近硬體;使用了單線程架構,避免了多線程競爭問題 基於鍵值對的數據結構,支持的數據結構豐富。它主要提供了5種數據結構: 字元串、 哈希、 列表、 集合、 有序集合, 同時在字元串的基礎之上演變出 ...
一、初始Redis
1、Redis特性與優點
- 速度快。redis所有數據都存放於記憶體;是用C語言實現,更加貼近硬體;使用了單線程架構,避免了多線程競爭問題
- 基於鍵值對的數據結構,支持的數據結構豐富。它主要提供了5種數據結構: 字元串、 哈希、 列表、 集合、 有序集合, 同時在字元串的基礎之上演變出了點陣圖(Bitmaps) 和HyperLogLog兩種神奇的“數據結構”, 並且隨著LBS(Location Based Service, 基於位置服務) 的不斷發展, Redis3.2版本中加入有關GEO(地理信息定位) 的功能
- 功能豐富。鍵過期功能,用來實現緩存;提供了發佈訂閱功能,實現消息系統;支持Lua腳本;提供簡單的事務功能;提供了Pipeline,一次性將一批命令傳給redis伺服器,減小了網路開銷
- 簡單,穩定。源碼少,3.0版本源代碼只有5w行左右
- 客戶端語言多。
- 持久化。兩種持久化方式: RDB和AOF
- 主從複製。複製功能是分散式Redis的基礎
-
高可用和分散式。2.8版本提供了高可用實現Redis Sentinel, 它能夠保證Redis節點的故障發現和故障自動轉移。 Redis從3.0版本正式提供了分散式實現Redis Cluster, 它是Redis真正的分散式實現, 提供了高用、 讀寫和容量的擴展性。
2、應用場景
- 緩存。
- 排行榜系統。redis提供了列表和有序集合支持。
- 計數器應用。
- 社交網路。
- 消息隊列系統。redis提供了訂閱發佈和阻塞隊列功能,雖然和專業的消息隊列軟體比不夠強大,但是可以滿足一般的消息隊列需求
3、redis常用操作
- 服務端啟動。配置文件啟動,redis-server /opt/redis/redis.conf
- 客戶端啟動。redis-cli -h 127.0.0.1 -p 6379
- 停止redis服務。redis-cli shutdown nosave|save 關閉過程:斷開與客戶端的連接;持久化文件生成。不建議kill -9 暴力殺進程,極端下會造成丟失數據的情況
二、API的理解和使用
1、全局命令
- 查看所有鍵。【keys *】會遍歷所有鍵,禁用
- 鍵總數。【dbsize】不會遍歷所有鍵,直接獲取redis內置的鍵總數
- 檢查鍵是否存在。【exists key】存在返回1,不存在返回0
- 刪除鍵。【del key】返回結果為成功刪除的鍵的個數
- 設置鍵過期。【expire key seconds】
- 檢查鍵過期。【ttl key】返回鍵的剩餘過期時間。-1,鍵沒設置過期時間;-2 鍵不存在
- 查看鍵的類型。【type key】鍵不存在,返回none
2、數據結構和內部編碼