簡介
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>
李培冠博客
歡迎訪問我的個人網站:
李培冠博客:lpgit.com