Redis入門 1.初始Redis 1.1認識NoSQL | | SQL(關係型資料庫) | NoSQL(非關係型資料庫) | | | | | | 數據結構 | 結構化(Structured) | 非結構化 | | 數據關聯 | 關聯的(Relational) | 無關聯的 | | 查詢方式 | S ...
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文件,一路點擊下一步,選擇對應的安裝目錄,完成安裝。