關(guān)于Redis數(shù)據(jù)庫(kù)入門(mén)詳細(xì)介紹
1、Redis是什么?
非關(guān)系型數(shù)據(jù)庫(kù):NoMsql
主流的 NoSQL 數(shù)據(jù)庫(kù)有Redis、 MongBD、 Hbase、 Memcached 等。
Redis譯為“遠(yuǎn)程字典服務(wù)”,它是一款基于內(nèi)存實(shí)現(xiàn)的鍵值型 NoSQL 數(shù)據(jù)庫(kù), 通常也被稱(chēng)為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,這是因?yàn)樗梢源鎯?chǔ)多種數(shù)據(jù)類(lèi)型,比如 string(字符串),hash(哈希散列),list(列表),set(集合)和 sorted set(有序集合)等。
Redis 遵守 BSD 協(xié)議,實(shí)現(xiàn)了免費(fèi)開(kāi)源,其最新版本是 6.20,常用版本包括 3.0 、4.0、5.0。
自 Redis 誕生以來(lái),它以其超高的性能、完美的文檔和簡(jiǎn)潔易懂的源碼廣受好評(píng),國(guó)內(nèi)外很多大型互聯(lián)網(wǎng)公司都在使用 Redis,比如騰訊、阿里、Twitter、Github 等等。

2、Redis特點(diǎn):
Redis 不僅可以將數(shù)據(jù)完全保存在內(nèi)存中,還可以通過(guò)磁盤(pán)實(shí)現(xiàn)數(shù)據(jù)的持久存儲(chǔ);Redis 支持豐富的數(shù)據(jù)類(lèi)型,包括 string、list、set、zset、hash 等多種數(shù)據(jù)類(lèi)型,因此它也被稱(chēng)為“數(shù)據(jù)結(jié)構(gòu)服務(wù)器”;Redis 支持主從同步,即 master-slave 主從復(fù)制模式。數(shù)據(jù)可以從主服務(wù)器向任意數(shù)量的從服務(wù)器上同步,有效地保證數(shù)據(jù)的安全性;Redis 支持多種編程語(yǔ)言,包括 C、C++、Python、Java、PHP、Ruby、Lua 等語(yǔ)言。
Redis 6.0版本前一直是單線程方式處理用戶(hù)的請(qǐng)求;
單線程為何如此快?
純內(nèi)存
非阻塞
避免線程切換和競(jìng)態(tài)消耗
Redis 沒(méi)有提供新建數(shù)據(jù)庫(kù)的操作,因?yàn)樗詭Я?16 (0—15)個(gè)數(shù)據(jù)庫(kù)(默認(rèn)使用 0 庫(kù))。在同一個(gè)庫(kù)中,key 是唯一存在的、不允許重復(fù)的,它就像一把“密鑰”,只能打開(kāi)一把“鎖”。鍵值存儲(chǔ)的本質(zhì)就是使用 key 來(lái)標(biāo)識(shí) value,當(dāng)想要檢索 value 時(shí),必須使用與 value 相對(duì)應(yīng)的 key 進(jìn)行查找。
3、redis 對(duì)比 memcached
| memcached | redis | |
|---|---|---|
| 類(lèi)型 | key-value | key-value |
| 過(guò)期策略 | 支持 | 支持 |
| 數(shù)據(jù)類(lèi)型 | 單一數(shù)據(jù)類(lèi)型 | 五大數(shù)據(jù)類(lèi)型 |
| 持久化 | 不支持 | 支持 |
| 主從復(fù)制 | 不支持 | 支持 |
| 虛擬內(nèi)存 | 不支持 | 支持 |
4、redis 典型應(yīng)用場(chǎng)景:
Session 共享:常見(jiàn)于web集群中的Tomcat或者PHP中多web服務(wù)器session共享;
緩存:數(shù)據(jù)查詢(xún)、電商網(wǎng)站商品信息、新聞內(nèi)容;
計(jì)數(shù)器:訪問(wèn)排行榜、商品瀏覽數(shù)等和次數(shù)相關(guān)的數(shù)值統(tǒng)計(jì)場(chǎng)景;
微博/微信社交場(chǎng)合:共同好友,粉絲數(shù),關(guān)注,點(diǎn)贊評(píng)論等;
消息隊(duì)列:ELK的日志緩存、部分業(yè)務(wù)的訂閱發(fā)布系統(tǒng);
地理位置: 基于GEO(地理信息定位),實(shí)現(xiàn)搖一搖,附近的人,外賣(mài)等功能;
5、Redis下載與安裝:
注意:Windows 系統(tǒng)可以下載安裝非官方的 Redis 版本,不過(guò)其使用性能遠(yuǎn)不如 Linux 系統(tǒng)。
這里我們?cè)赾entos7上部署安裝Redis 5.0.7版本:
rpm源碼包下載地址:wget https://download.redis.io/releases/redis-5.0.7.tar.gz
#關(guān)閉防火墻和SELinux systemctl stop firewalld setenforce 0 #安裝依賴(lài)包 yum install -y gcc gcc-c++ make #下載軟件包 cd /opt wget https://download.redis.io/releases/redis-5.0.7.tar.gz tar zxf redis-5.0.7.tar.gz cd redis-5.0.7/ make make PREFIX=/usr/local/redis install
#由于Redis源碼包中直接提供了Makefile 文件,所以在解壓完軟件包后,不用先執(zhí)行./configure進(jìn)行配置,可直接執(zhí)行make與make install 命令進(jìn)行安裝。


cd /opt/redis-5.0.7/utils ./install_server.sh #。。。。一直回車(chē)到這一步 #需要手動(dòng)修改為可執(zhí)行文件路徑,注意要一次性正確輸入 Please select the redis executable path [] /usr/local/redis/bin/redis-server

把redis的可執(zhí)行程序文件放入路徑環(huán)境變量的目錄中便于系統(tǒng)識(shí)別;
ln -s /usr/local/redis/bin/* /usr/local/bin/ #當(dāng)install_server.sh 腳本運(yùn)行完畢,Redis 服務(wù)就已經(jīng)啟動(dòng),默認(rèn)偵聽(tīng)端口為6379 ss -natp | grep 6379

Redis服務(wù)控制:
/etc/init.d/redis_6379 stop #停止 /etc/init.d/redis_6379 start #啟動(dòng) /etc/init.d/redis_6379 restart #重啟 /etc/init.d/redis_6379 status #查看狀態(tài)
#修改配置/etc/redis/6379.conf 參數(shù) #70行,添加,監(jiān)聽(tīng)的主機(jī)地址 vim /etc/redis/6379.conf bind 127.0.0.1 192.168.111.100 #修改配置后要重啟Redis /etc/init.d/redis_6379 restart

Redis 命令工具:
| redis-server | 用于啟動(dòng) Redis的工具 |
|---|---|
| redis-benchmark | 用于檢測(cè)Redis在本機(jī)的運(yùn)行效率 |
| redis-check-aof | 修復(fù)AoF持久化文件 |
| redis-check-rdb | 修復(fù)RDB持久化文件 |
| redis-cli | Redis 命令行工具 |
redis-benchmark 測(cè)試工具
語(yǔ)法: redis-benchmark [選項(xiàng)] [選項(xiàng)值]
-h :指定服務(wù)器主機(jī)名。
-P :指定服務(wù)器端口。
-s :指定服務(wù)器socket
-c :指定并發(fā)連接數(shù)。
-n :指定請(qǐng)求數(shù)。
-d :以字節(jié)的形式指定SET/GET值的數(shù)據(jù)大小。
-k : 1=keep alive 0=reconnect 。
-r : SET/GET/INCR 使用隨機(jī)key, SADD 使用隨機(jī)值。
-P :通過(guò)管道傳輸請(qǐng)求。
-q :強(qiáng)制退出redis。 僅顯示query/sec值。
–csv :以 CSV 格式輸出。
-l :生成循環(huán),永久執(zhí)行測(cè)試。
-t :僅運(yùn)行以逗號(hào)分隔的測(cè)試命令列表。,
-I :Idle 模式。僅打開(kāi) N 個(gè) idle 連接并等待。
#向IP地址為192.168.111.100、 端口為6379的Redis 服務(wù)器發(fā)送100 個(gè)并發(fā)連接與100000 個(gè)請(qǐng)求測(cè)試性能 redis-benchmark -h 192.168.111.100 -P 6379 -c 100 -n 100000 #測(cè)試存取大小為100字節(jié)的數(shù)據(jù)包的性能 redis-benchmark -h 192.168.111.100 -P 6379 -q -d 100 #測(cè)試本機(jī)上 Redis 服務(wù)在進(jìn)行 set 與lpush 操作時(shí)的性能 redis-benchmark -t set,lpush -n 100000 -q
redis-cli 命令行工具:
---redis-cli 命令行工具------ redis-cli -h 192.168.111.100 -p 6379 -a 123123 -n 數(shù)據(jù)庫(kù)序號(hào)(0-15) -h:指定遠(yuǎn)程主機(jī)地址 -p:指定redis服務(wù)端口 -a:指定密碼,未設(shè)置數(shù)據(jù)庫(kù)密碼可以省略-a選項(xiàng) -n:指定數(shù)據(jù)庫(kù)序號(hào),默認(rèn)是序號(hào)0,redis有16個(gè)庫(kù)(0-15) 若不添加任何選型表示,則使用127.0.0.1:6379 連接本機(jī)上的redis 數(shù)據(jù)庫(kù)

到此這篇關(guān)于關(guān)于Redis數(shù)據(jù)庫(kù)入門(mén)詳細(xì)介紹的文章就介紹到這了,更多相關(guān)Redis數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis五大基本數(shù)據(jù)類(lèi)型及對(duì)應(yīng)使用場(chǎng)景總結(jié)
Redis有五種基本數(shù)據(jù)類(lèi)型,分別是字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted?Set),這些基本數(shù)據(jù)類(lèi)型使得Redis具備了豐富的數(shù)據(jù)結(jié)構(gòu)和功能,適用于各種不同的應(yīng)用場(chǎng)景,本文就給大家詳細(xì)的介紹一下這五大類(lèi)型2023-08-08
Redis數(shù)據(jù)庫(kù)的安裝和配置教程詳解
這篇文章主要介紹了Redis數(shù)據(jù)庫(kù)的安裝和配置?,主要包括Linux環(huán)境安裝Redis和windows環(huán)境安裝Redis,redis客戶(hù)端安裝方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
RedisDesktopManager無(wú)法遠(yuǎn)程連接Redis的完美解決方法
下載RedisDesktopManager客戶(hù)端,輸入服務(wù)器IP地址,端口(缺省值:6379);點(diǎn)擊Test Connection按鈕測(cè)試連接,連接失敗,怎么回事呢?下面小編給大家?guī)?lái)了RedisDesktopManager無(wú)法遠(yuǎn)程連接Redis的完美解決方法,一起看看吧2018-03-03
Redis?sentinel哨兵集群的實(shí)現(xiàn)步驟
本文主要介紹了Redis?sentinel哨兵集群的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
Redis sentinel節(jié)點(diǎn)如何修改密碼
這篇文章主要介紹了Redis sentinel節(jié)點(diǎn)如何修改密碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Deepin UOS編譯安裝Redis的實(shí)現(xiàn)步驟
本文主要介紹了Deepin UOS編譯安裝Redis的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
Redis定時(shí)任務(wù)原理的實(shí)現(xiàn)
本文主要是基于?redis?6.2?源碼進(jìn)行分析定時(shí)事件的數(shù)據(jù)結(jié)構(gòu)和常見(jiàn)操作,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

