引言
隨著互聯網的高速發展,傳統的關系資料庫(如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的相關內容,如果本文對你有所幫助,就是我寫作的動力!感興趣的朋友可以加關注,歡迎留言交流!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/12744.html
標籤:NoSQL
下一篇:Mongodb學習總結
