一、特性

Redis是一個在內存中存儲數據的中間件。

  1. 在內存中存儲數據,支持 string、hash、list、set、sorted set、stream等等。
  2. 可編程的:針對Redis的操作,可以使用一些簡單的交互命令進行操作,也可以使用腳本,執行一些批量的帶有邏輯的操作。
  3. 可擴展:Redis提供了一組API,可以在Redis原有基礎功能上進行擴展。
  4. 持久化:Redis會把數據也存在硬盤上,對內存上的數據備份一下,Redis重啓就加載一下,將內存數據恢復到存儲前的狀態。
  5. 支持集羣:支持多個Redis共同存儲龐大數據的一部分,互相配合使用。
  6. 高可用:Redis支持“主從"結構,如果Redis主服務掛了,Redis從服務可以加載頂上。
  7. 訪問快:Redis數據存在內存中,核心功能都是操作內存數據結構的簡單邏輯,網絡上使用 IO 多路複用的方式,使用單線程模型減少不必要的線程開銷。

二、應用場景

  1. 實時數據存儲:把Redis當做數據庫,實時性要求比較高,低延遲、高吞吐率的場景下。
  2. 作為緩存或session存儲:把業務中的熱點數據(訪問頻率高的數據),存儲在Redis中。
  3. 作為消息隊列:實現網絡版本的生產者消費者模型。

三、環境搭建

3.1 Ubuntu 安裝

Ubuntu 20.4 版本

  1. 使⽤ apt 安裝:apt install redis -y
  2. 查看啓動:netstat -anp | grep redis
  3. 修改配置文件:

修改 /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 安裝:

  1. ⾸先安裝 scl 源, 再安裝 redis yum install centos-release-scl-rhyum install rh-redis5-redis
  2. 創建符號鏈接 默認安裝的⽬錄為 /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-cli 2.2. 針對配置⽂件設置符號鏈接 cd /etc/ln -s /etc/opt/rh/rh-redis5/ ./redis
  3. 修改配置⽂件 3.1.設置 ip 地址 bind 0.0.0.0 3.2. 關閉保護模式 protected-mode no 3.3. 啓動守護進程 daemonize yes 3.4.設置⼯作⽬錄 先創建⼯作⽬錄mkdir -p /var/lib/redis 再在配置⽂件中, 設置⼯作⽬錄 dir /var/lib/redis 3.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 安裝

  1. 使⽤ yum 安裝: yum install -y redis
  2. 通過 systemd 管理 Redis ⼀旦安裝完成,我們可以將 redis 設置為開機⾃動啓動:systemctl enable redis
  3. 修改 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 服務器:

  1. 交互式⽅式:通過 redis-cli -h { host } -p { port }的⽅式連接到 Redis 服務,後續不需再執行命令。
  2. 命令⽅式:⽤redis-cli -h { host } -p { port } { command }

Redis 客⼾端與服務端的交互過程: