什么是Redis
基于鍵值對(duì)的內(nèi)存數(shù)據(jù)庫(kù)出牧。
Redis 的優(yōu)勢(shì)
-
基于內(nèi)存穴肘,所以數(shù)據(jù)讀寫(xiě)快。
所有數(shù)據(jù)都存放在內(nèi)存中
底層使用 C 語(yǔ)言實(shí)現(xiàn)
使用單線程架構(gòu)舔痕,避免產(chǎn)生競(jìng)爭(zhēng)問(wèn)題
源代碼集性能和優(yōu)雅與一身
-
持久化
- 可以將內(nèi)存的數(shù)據(jù)利用快照和日志的形式保存在硬盤(pán)上评抚。
-
提供更多功能
- 提供鍵過(guò)期、發(fā)布訂閱伯复、事務(wù)慨代、流水線啸如、Lua 腳本等附加功能侍匙。
-
支持多種數(shù)據(jù)結(jié)構(gòu),應(yīng)用廣泛叮雳。
- String
- hash
- list
- set
- zset(有序集合)
- Bitmaps
- HyperLogLog
- GEO(地理信息定位)
-
開(kāi)源。
- 源碼量相較比較少,容易深入學(xué)習(xí)。
-
客戶(hù)端語(yǔ)言多
- 比如 Java 模她、PHP尊勿、Python元扔、C、C++、Node等。
主從復(fù)制碱工。
-
高可用和分布式漫谷。
- 保證了 Redis 節(jié)點(diǎn)的故障發(fā)現(xiàn)和故障自動(dòng)轉(zhuǎn)移电抚。
Redis 使用場(chǎng)景
-
緩存
Redis 提供了健值過(guò)期時(shí)間設(shè)置,并且也提供了靈活控制最大內(nèi)存和內(nèi)存溢出后的淘汰策略。
-
排行榜系統(tǒng)
Redis 提供了列表和有序集合數(shù)據(jù)結(jié)構(gòu)吐葱,合理地使用這些數(shù)據(jù)結(jié)構(gòu)可以很方便構(gòu)建各種排行榜系統(tǒng)。
-
計(jì)數(shù)器應(yīng)用
Redis 天然支持計(jì)數(shù)器功能而且計(jì)數(shù)的性能也非常好孟辑。
-
社交網(wǎng)絡(luò)
由于社交網(wǎng)絡(luò)訪問(wèn)量通常比較大,而且傳統(tǒng)的關(guān)系型數(shù)據(jù)不適合保存這種類(lèi)型的數(shù)據(jù)。而 Redis 提供的數(shù)據(jù)結(jié)構(gòu)可以相對(duì)比較容易地實(shí)現(xiàn)這些功能。
-
消息隊(duì)列系統(tǒng)
Redis 提供了發(fā)布訂閱功能和阻塞隊(duì)列的功能晚唇,雖然和專(zhuān)業(yè)的消息隊(duì)列比還不夠強(qiáng)大,但是對(duì)于一般的消息隊(duì)列功能基本可以滿足心赶。
Redis 不可以做什么
比如大規(guī)模的數(shù)據(jù)琐簇,再比如一些不需要經(jīng)常訪問(wèn)的冷數(shù)據(jù)蒸健。
用好 Redis 的建議
-
切勿當(dāng)做黑盒使用,開(kāi)發(fā)與運(yùn)維同樣重要鸽嫂。
要在了解其原理之后,妥善使用征讲。
-
閱讀源碼
閱讀源碼可以加深對(duì)系統(tǒng)的理解据某,提升自己的編碼水平,甚至可以客制化诗箍。
使用 Redis
啟動(dòng)服務(wù):
redis-server
之后會(huì)顯示一些日志信息:
使用命令行工具:
redis-cli -h 127.0.0.1 -p 6379
停止 Redis 服務(wù)
redis-cli shutdown
關(guān)閉前建議使用
save
參數(shù)生成持久化文件:
redis-cli shutdown [nosave]|[save]
查看版本:
redis-cli -v
Redis 借鑒了 Linux 操作系統(tǒng)對(duì)于版本號(hào)的命名規(guī)則: 版本號(hào)第二位如果是奇數(shù),則為非穩(wěn)定版本(例如2.7 , 3.1),如果是偶數(shù),則為穩(wěn)定版本(例如2.8 , 3.2)癣籽。
查看狀態(tài):
redis-cli status