一、特性
Redis是一個在內存中存儲數據的中間件。
- 在內存中存儲數據,支持 string、hash、list、set、sorted set、stream等等。
- 可編程的:針對Redis的操作,可以使用一些簡單的交互命令進行操作,也可以使用腳本,執行一些批量的帶有邏輯的操作。
- 可擴展:Redis提供了一組API,可以在Redis原有基礎功能上進行擴展。
- 持久化:Redis會把數據也存在硬盤上,對內存上的數據備份一下,Redis重啓就加載一下,將內存數據恢復到存儲前的狀態。
- 支持集羣:支持多個Redis共同存儲龐大數據的一部分,互相配合使用。
- 高可用:Redis支持“主從"結構,如果Redis主服務掛了,Redis從服務可以加載頂上。
- 訪問快:Redis數據存在內存中,核心功能都是操作內存數據結構的簡單邏輯,網絡上使用 IO 多路複用的方式,使用單線程模型減少不必要的線程開銷。
二、應用場景
- 實時數據存儲:把Redis當做數據庫,實時性要求比較高,低延遲、高吞吐率的場景下。
- 作為緩存或session存儲:把業務中的熱點數據(訪問頻率高的數據),存儲在Redis中。
- 作為消息隊列:實現網絡版本的生產者消費者模型。
三、環境搭建
3.1 Ubuntu 安裝
Ubuntu 20.4 版本
- 使⽤ apt 安裝:
apt install redis -y - 查看啓動:
netstat -anp | grep redis - 修改配置文件:
修改 /etc/redis/redis.conf 文件
- 修改 bind 127.0.0.1 為 bind 0.0.0.0
- 修改 protected-mode yes 為 protected-mode no
啓動 Redis 服務: service redis-server start 停⽌ Redis 服務: service redis-server stop 重啓 Redis 服務: service redis-server restart 連接客户端:redis-cli 退出客户端:Ctrl + D
3.2 Centos 7 安裝
使⽤ yum 安裝:
- ⾸先安裝 scl 源, 再安裝 redis
yum install centos-release-scl-rhyum install rh-redis5-redis - 創建符號鏈接 默認安裝的⽬錄為 /opt/rh/rh-redis5/root/usr/bin/ , 藏的太深了, 不⽅便使⽤. 我們通過符號鏈接, 把需要⽤到的關鍵內容設置到⽅便使⽤的⽬錄中. 2.1. 針對可執⾏程序設置符號鏈接
cd /usr/binln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-serverln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinelln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli2.2. 針對配置⽂件設置符號鏈接cd /etc/ln -s /etc/opt/rh/rh-redis5/ ./redis - 修改配置⽂件 3.1.設置 ip 地址
bind 0.0.0.03.2. 關閉保護模式protected-mode no3.3. 啓動守護進程daemonize yes3.4.設置⼯作⽬錄 先創建⼯作⽬錄mkdir -p /var/lib/redis再在配置⽂件中, 設置⼯作⽬錄dir /var/lib/redis3.5. 設置⽇志⽬錄 先創建⽇志⽬錄mkdir -p /var/log/redis/再在配置⽂件中, 設置⽇志⽬錄logfile /var/log/redis/redis-server.log
啓動 Redis 服務: redis-server /etc/redis/redis.conf 停⽌ Redis 服務:
先查看到 redis-server 的 pid:
ps aux | grep redis然後通過 kill 命令直接殺死 redis 進程kill 進程id
連接客户端:redis-cli 退出客户端:Ctrl + D
3.3 Centos 8 安裝
- 使⽤ yum 安裝:
yum install -y redis - 通過 systemd 管理 Redis ⼀旦安裝完成,我們可以將 redis 設置為開機⾃動啓動:
systemctl enable redis - 修改 Redis 的配置⽂件:/etc/redis.conf 定位到 bind 127.0.0.1 開頭的⼀⾏,修改為 bind 0.0.0.0 以添加全接⼝⽀持: 關閉保護模式, protected-mode no
啓動 Redis 服務: systemctl start redis 停⽌ Redis 服務: systemctl stop redis 重啓 Redis 服務: systemctl restart redis 連接客户端:redis-cli 退出客户端:Ctrl + D
四、Redis客户端
redis-cli 可以使⽤兩種⽅式連接 Redis 服務器:
- 交互式⽅式:通過
redis-cli -h { host } -p { port }的⽅式連接到 Redis 服務,後續不需再執行命令。 - 命令⽅式:⽤
redis-cli -h { host } -p { port } { command }
Redis 客⼾端與服務端的交互過程: