Redis入門
1.初始Redis
1.1認識NoSQL
SQL(關係型資料庫) | NoSQL(非關係型資料庫) | |
---|---|---|
資料結構 | 結構化(Structured) | 非結構化 |
資料關聯 | 關聯的(Relational) | 無關聯的 |
查詢方式 | SQL查詢 | 非SQL |
事務特性 | ACID | BASE |
儲存方式 | 磁碟 | 記憶體 |
擴充套件性 | 垂直 | 水平 |
使用場景 | 1.資料結構固定 2.相關業務對資料安全性、一致性要求較高 | 1.資料結構不固定 2.對一致性、安全性要求不高 3.對效能要求高 |
其中,非關係型資料庫有很多種,比如:
- 鍵值型別(Redis)
- 文件型別(MongoDB)
- 列型別(HBase)
- Graph型別(Neo4j)
1.2認識Redis
Redis誕生於2009年,全稱為 Remote Dictionary Server(遠端詞典伺服器),是一個基於記憶體的鍵值型NoSQL資料庫。
Redis特徵:
- 鍵值(key-value)型,value支援多種不同的資料結構,功能豐富
- 單執行緒,每個命令具備原子性
- 低延遲,速度快(基於記憶體、IO多路複用、良好的編碼)
- 支援資料持久化
- 支援主從叢集、分片叢集(主從叢集:從節點可以去備份主節點的資料;分片叢集:資料的拆分,一份資料可以拆成多分,分別儲存在不同的節點上)
- 支援多語言客戶端
2.安裝Redis
2.1單機安裝redis
大多數企業都是基於Linux伺服器來部署專案,而且Redis官方也沒有提供Windows版本的安裝包,因此我們這裡基於Linux系統來安裝Redis。
ubuntu安裝redis教程:Ubuntu安裝redis詳細教程
(1) 安裝 Redis 伺服器
sudo apt-get install -y redis-server
(2)在 /etc/redis/redis.conf 中修改redis密碼,修改配置檔案裡的 requirepass
,把註釋關掉,然後後面改為你想設定的密碼
sudo vim /etc/redis/redis.conf #注意使用sudo
(3) 啟動 Redis 伺服器:使用命令redis-server
啟動redis伺服器
(4) 驗證 Redis 是否正常工作:
新建一個視窗當做redis客戶端,用於通訊。在客戶端輸入命令:redis-cli
,這會開啟一個redis提示符:127.0.0.1:6379>
。其中,127.0.0.1 是機器的 IP 地址,6379 是 Redis 伺服器執行的埠。鍵入PING
命令,若返回 PONG 則表示 Redis 已成功安裝在你的系統上。
注意事項:
redis-cli
是redis提供的命令列客戶端
redis-server
是redis的服務端啟動指令碼
redis-sentinel
是redis的哨兵啟動指令碼
2.2redis服務-後臺啟動
如上所示,我們直接輸入命令redis-server,redis伺服器將會在前臺啟動(預設啟動方式),這樣會阻塞整個會話視窗,視窗按下ctrl+c則redis服務停止,不推薦使用。
如果要讓redis以後臺方式啟動,則必須修改redis的配置檔案。
(1)先將該檔案備份:
li@LAPTOP-32SOPQVL:/etc/redis$ sudo cp redis.conf redis.cinf.bck
li@LAPTOP-32SOPQVL:/etc/redis$ ls
redis.cinf.bck redis.conf
(2)再修改配置檔案, sudo vim /etc/redis/redis.conf
,修改的部分配置如下
# 允許訪問的地址,預設是127.0.0.1,會導致只能在本地訪問。
# 修改為0.0.0.0則可以在任意IP訪問,注意:生產環境不要設定為0.0.0.0 !!
bind 0.0.0.0
# 守護程式,修改為yes後即可後臺執行
daemonize yes
# 密碼,設定後訪問Redis必須輸入密碼
requirepass 123456
(3)修改之後,輸入命令 sudo redis-server /etc/redis/redis.conf
,就可以在後臺執行redis服務端了
li@LAPTOP-32SOPQVL:/$ sudo redis-server /etc/redis/redis.conf
li@LAPTOP-32SOPQVL:/$ ps -ef | grep redis #檢視埠
root 22196 1 0 21:09 ? 00:00:00 redis-server 0.0.0.0:6379
li 22201 4351 0 21:09 tty2 00:00:00 grep --color=auto redis
(4)後臺啟動服務端後,因為修改了密碼,客戶端訪問時需要輸入密碼
Redis報錯 : (error) NOAUTH Authentication required (cnblogs.com)
li@LAPTOP-32SOPQVL:~$ redis-cli
127.0.0.1:6379> auth 123456 # 輸入密碼
OK
127.0.0.1:6379> ping
PONG
- Redis的其它常見配置:
# 監聽的埠
port 6379
# 工作目錄,預設是當前目錄 . ,也就是執行redis-server時的命令,日誌、持久化等檔案會儲存在這個目錄
dir .
# 資料庫數量,設定為1,代表只使用1個庫,預設有16個庫,編號0~15
databases 1
# 設定redis能夠使用的最大記憶體
maxmemory 512mb
# 日誌檔案,預設為空,不記錄日誌,可以指定日誌檔名
logfile "redis.log"
啟動Redis:
# 進入redis安裝目錄
cd /usr/local/src/redis-6.2.6
# 啟動,需要管理員許可權
redis-server /etc/redis/redis.conf
停止服務:
# 利用redis-cli來執行 shutdown 命令,即可停止 Redis 服務,
# 因為之前配置了密碼,因此需要透過 -u 來指定密碼
redis-cli -u 123456 shutdown
3.Redis客戶端
安裝完成Redis,我們就可以操作Redis,實現資料的CRUD了。這裡需要用到redis的客戶端,包括:
- 命令列客戶端
- 圖形化桌面客戶端
- 程式設計客戶端
3.1命令列客戶端
Redis安裝完成後就自帶了命令列客戶端,在上面已經使用過,開啟新視窗,使用方式如下:
redis-cli [options] [commonds]
常見的options有:
-h 127.0.0.1
:指定要連線的redis節點的IP地址,預設是127.0.0.1-p 6379
:指定要連線的redis節點的埠,預設是6379-a 123456
:指定redis的訪問密碼
commonds是Redis的操作命令,例如:
ping
:與redis服務端做心跳測試,服務端正常會返回pong
不指定commond時,會直接進入redis-cli
的互動控制檯:
3.2圖形化桌面客戶端
RedisInsight/RedisDesktopManager: Cross-platform Developer GUI for Redis (github.com)
下載後直接執行.exe檔案,一路點選下一步,選擇對應的安裝目錄,完成安裝。