Redis系列(一):小試牛刀
引言
隨著網際網路的高速發展,傳統的關係資料庫(如MySQL、Microsoft SQL Server等)已不能滿足日益增長的業務需求,如商品秒殺、搶購等及時性非常強的功能,隨著應用高併發的訪問,會造成系統資料庫崩潰,為了解決此種情況,需要引用一個快取中介軟體,市面上比較常用的快取中介軟體有Redis 和 Memcached,他們各自有自己的優缺點,但一般網際網路公司大都採用MySQL + Redis的方式進行架構,本文主要介紹Redis的概念及安裝配置。
簡介
概念
Redis(Remote Dictionary Server ) 是一個開源的使用 ANSI C 語言編寫、遵守 BSD 協議、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value 資料庫,並提供多種語言的 API的非關係型資料庫。
傳統資料庫遵循 ACID 規則。而 Nosql(Not Only SQL 的縮寫,是對不同於傳統的關係型資料庫的資料庫管理系統的統稱) 一般為分散式而分散式一般遵循 CAP 定理。
它和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別)。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是快取在記憶體中。區別的是Redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步,redis在3.0版本推出叢集模式。
Github 原始碼:https://github.com/antirez/redis
Redis 官網:https://redis.io/
特點、優勢
- k、v鍵值儲存以及資料結構儲存(如列表、字典)
- 所有資料(包括資料的儲存)操作均在記憶體中完成
- 單執行緒服務(這意味著會有較多的阻塞情況),採用epoll模型進行請求響應,對比nginx
- 支援主從複製模式,更提供高可用主從複製模式(哨兵)
- 去中心化分散式叢集
- 豐富的程式設計介面支援,如Python、Golang、Java、php、Ruby、Lua、Node.js
- 功能豐富,除了支援多種資料結構之外,還支援事務、釋出/訂閱、訊息佇列等功能
- 支援資料持久化(AOF、RDB)
對比memcache
- memcache是一個分散式的記憶體物件快取系統,並不提供持久儲存功能,而redis擁有持久化功能
- memcache資料儲存基於LRU(簡單說:最近、最少使用key會被剔除),而redis則可以永久儲存(服務一直執行情況下)
- memcache是多執行緒的(這是memcache優勢之一),也就意味著阻塞情況少,而redis是單執行緒的,阻塞情況相對較多
- 兩者效能上相差不大
- memcache只支援簡單的k、v資料儲存,而redis支援多種資料格式儲存。
- memcache是多執行緒、非阻塞IO複用網路模型,而redis是單執行緒IO複用模型
安裝Windows版本
Redis的windoms版下載地址:https://github.com/microsoftarchive/redis/releases。
下載自己需要的版本,如下圖(msi是安裝版本,zip是解壓版):
下載zip到本地解壓(筆者解壓目錄為D:\Program Files\Redis),目錄如下:
開啟服務,執行CMD,切換到解壓目錄,執行如下命令(並設定最大記憶體):
redis-server.exe redis.windows.conf --maxmemory 200M
效果如圖所示:
開啟命令列客戶端,執行如下命令:
redis-cli.exe
新增和查詢Key-Value,執行如下命令:
#設定鍵值 set key value #獲取鍵值 get key
查詢和設定密碼,執行如下命令:
#查詢密碼 config get requirepass #設定密碼 config set requirepass 密碼
輸入密碼,執行如下命令:
auth 密碼
以上幾個命令,演示如下圖所示。
註冊和解除安裝服務,執行如下命令:
#註冊安裝服務 redis-server --service-install redis.windows.conf --loglevel verbose #解除安裝服務 #redis-server --service-uninstall
執行效果,如下圖:
註冊完成後,可以在計算機服務中看到該服務,如下圖所示。
開啟服務後,可以直接用命令列客戶端進行連線。
總結
本文簡單的介紹了Redis的背景、概念及Windows版本的安裝及測試,在後續博文中,將繼續講解Redis的相關內容,如果本文對你有所幫助,就是我寫作的動力!感興趣的朋友可以加關注,歡迎留言交流!&n