Redis 簡介與安裝
阿新 • • 發佈:2020-08-07
簡介
Redis 是一種高效能的 Key-Value 資料庫。
NoSQL 介紹
NoSQL是一種新出現的資料庫(Not Only SQL),它的特點:
- 不支援 SQL 語法
- 儲存結構跟傳統關係型資料庫中的那種關係表完全不同,NoSQL 中儲存的資料都是 Key-Value 形式
- NoSQL 的世界中沒有一種通用的語言,每種 NoSQL 資料庫都有自己的 api 和語法,以及擅長的業務場景。
NoSQL 的種類
MongoDB、Redis、Hbase hadoop、Cassandra hadoop
NoSQL 和 SQL 資料庫的區別
- 適用場景不同:SQL 資料庫適合用於關係特別複雜的資料查詢場景;NoSQL 反之
- 兩者在不斷的取長補短,呈現融合趨勢
Redis 介紹
Redis 是一個開源的使用 ANSI C 語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value 資料庫,並提供多種語言的 API。
從2010年3月15日起,Redis 的開發工作由 VMware 主持。從2013年5月開始,Redis 的開發由 Pivotal 贊助。
Redis 是 NoSQL 技術陣營中的一員,它通過多種鍵值資料型別來適應不同場景下的儲存需求,藉助一些高層級的介面使用其可以勝任,如快取、佇列系統的不同角色。
Redis 特性
Redis 與其它 Key-Value 快取產品有以下三個特點:
- Redis 支援資料持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
- Redis 不僅僅支援簡單的 Key-Value 型別的資料,同時還提供 list、set、zset、hash等資料結構的儲存。
- Redis 支援資料的備份,即 master-slave模式的資料備份。
Redis 優勢
- 效能極高:Redis 能讀的速度是 110000 次/s,寫的速度是 81000 次/s
- 豐富的資料型別:Redis支援二進位制案例的 Strings、Lists、Hashed、Sets及Ordered Sets資料型別操作
- 原子:Redis 的所有操作都是原子性的,同時 Redis 還支援對幾個操作全並後的原子性執行
- 豐富的特性:Redis 還支援 publish/subscribe、通知、key 過期等特性。
Redis 應用場景
- 用來做快取(ehcache/memcached):Redis 的所有資料是放在記憶體中的(記憶體資料庫)
- 可以在某些特定應用場景下替代傳統資料庫:比如社交類的應用
- 在一些大型系統中,巧妙的實現一些特性的功能:Session 共享、購物車
Redis 與 Mongodb 的區別
記憶體管理機制上:
- Redis 資料全部存在記憶體,定期寫入磁碟,當記憶體不夠時,可以選擇指定的 LRU 演算法刪除資料。
- MongoDB 資料存在記憶體,由 Linux 系統 mmap 實現,當記憶體不夠時,只將熱點資料放入記憶體,其它資料存在磁碟。
支援的資料結構上:
- Redis 支援的資料結構豐富,包括 hash、set、list等。
- MongoDB 資料結構比較單一,但是支援豐富的資料表達、索引,最類似關係型資料庫,支援的查詢語言豐富。
Redis的資料型別及底層實現
- 字串:整數值、embstr編碼的簡單動態字串、簡單動態字串(SDS)
- 列表:壓縮列表、雙端連結串列
- 雜湊:壓縮列表、字典
- 集合:整數集合、字典
- 有序集合:壓縮列表、跳躍表和字典
安裝
Windows下安裝Redis
Github下載地址:https://github.com/microsoftarchive/redis/releases
下載檔案
如果 github
下載檔案慢,可以下載我已經下載好的檔案:
下載完成後進行解壓,解壓路徑我選擇的是:D:\redis
。
開啟 cmd
,使用 cd
命令進入redis的目錄,輸入 redis-server.exe redis.windows.conf
輸入之後,會顯示如下介面:
這時候另啟一個 cmd 視窗,原來的不要關閉,不然就無法訪問服務端了。
切換到 redis 目錄下執行:
redis-cli.exe -h 127.0.0.1 -p 6379
設定鍵值對:
set myKey abc
取出鍵值對:
get myKey
Linux 下安裝 Redis
下載
$ wget http://download.redis.io/releases/redis-6.0.5.tar.gz
或者進入網址下載指定版本: http://download.redis.io/releases/
解壓
$ tar xzf redis-6.0.5.tar.gz
進入
$ cd redis-6.0.5
編譯
$ make
安裝
$ sudo make install
驗證
$ redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>