Redis 搭建與配置
阿新 • • 發佈:2020-08-03
Redis 簡介
Redis 是一款開源的,ANSI C 語言編寫的,高階鍵值(Key-Value)快取和支援永久儲存 NoSQL 資料庫產品,
Redis 採用記憶體(In-Memory)資料集(DataSet),
支援多種資料型別,
運行於大多數 POSIX 系統,如Linux、*BSD、OS X等。
Redis 就是非關係型資料庫(NOSQL)的一種,儲存方式是 Key:value
Redis 作用
會話保持(EXPIRE 設定過期時間)
資料快取(放在資料庫前面,memcache,mongodb)
訊息佇列(kafka),結合 ELK
Redis 優點
1.高速讀寫,將所有資料儲存在記憶體,單執行緒服務,使用 C 語言 2.部署簡單,使用穩定 3.資料型別豐富 - String: 字串型別 - Hash: 雜湊型別 - List: 列表型別 - Set: 集合型別 - Sorted set: 順序集合型別 4.支援持久化,將記憶體的資料寫入磁碟 5.多種記憶體分配及回收策略 6.支援事物、鎖 7.訊息佇列、訊息訂閱 8.支援高可用:哨兵模式 9.支援分散式分片叢集 10.支援的客戶端語言很多:Java,PHP,Python,Node.js,C
Redis 下載
官方網站:https://redis.io/
下載網站:http://download.redis.io/releases/
幫助網站:http://redisdoc.com/
Redis & Memcached 資料快取對比
# Memcached: 1.優點:高效能讀寫、單一資料型別、支援客戶端式分散式叢集、一致性hash多核結構、多執行緒讀寫效能高。 2.缺點:無持久化、節點故障可能出現快取穿透、分散式需要客戶端實現、跨機房資料同步困難、架構擴容複雜度高 # Redis: 1.優點:高效能讀寫、多資料型別支援、資料持久化、高可用架構、支援自定義虛擬記憶體、支援分散式分片叢集、單執行緒讀寫效能極高 2.缺點:多執行緒讀寫較Memcached慢 # Tair: 1.優點:高效能讀寫、支援三種儲存引擎(ddb、rdb、ldb)、支援高可用、支援分散式分片叢集、支撐了幾乎所有淘寶業務的快取。 2.缺點:單機情況下,讀寫效能較其他兩種產品較慢 # 對比結論: 1.Memcached:多核的快取服務,更加適合於多使用者併發訪問次數(訪問次數較少的應用場景)。 2.Redis:單核快取服務,在單節點情況下,更加適合少量使用者,多次訪問的應用場景。
Redis 使用場景
-
會話快取(Session Cache):將 Session 儲存在 Redis 中,用 Redis 快取會話相對於其他儲存(如 Memcached)的優勢是,Redis 提供了持久化 。
-
資料快取:將後端(MySQL)儲存的持久化資料,快取到 Redis 中,加快查詢速度,降低 MySQL I/O 負荷 。
-
排行榜 / 計數器:Redis 在記憶體中對數字進行遞增、遞減的操作十分方便,利用好集合(Set)和有序集合(Sort Set),這些操作非常簡單 。
-
社交軟體:共同好友,共同愛好(通過集合實現)
-
訊息佇列,結合 ELK 做日誌收集(通過列表實現)
Redis 搭建
下載原始碼包
[root@redis ~]# wget http://download.redis.io/releases/redis-3.2.12.tar.gz
安裝依賴
[root@redis ~]# yum install -y gcc gcc-c++
解壓原始碼包
[root@redis ~]# tar xf redis-3.2.12.tar.gz
[root@redis ~]# mv redis-3.2.12 /usr/local/
[root@redis ~]# ln -s /usr/local/redis-3.2.12 /usr/local/redis
編譯安裝
[root@redis ~]# cd /usr/local/redis
[root@redis redis]# make & make install
啟動 Redis
[root@redis redis]# ./src/redis-server &
[root@redis redis]# netstat -lntp
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 11759/./src/redis-s
連線 Redis
如果編譯安裝步驟中,沒有安裝(make install),需要手動配置環境變數 。
# 配置環境變數
[root@redis redis]# vim /etc/profile.d/redis.sh
export PATH=/usr/local/redis/src:$PATH
# 客戶端連線
[root@redis redis]# redis-cli
127.0.0.1:6379>
關閉 Redis
[root@redis redis]# redis-cli shutdown
11759:M 03 Aug 10:20:20.535 # User requested shutdown...
11759:M 03 Aug 10:20:20.535 * Saving the final RDB snapshot before exiting.
11759:M 03 Aug 10:20:20.546 * DB saved on disk
11759:M 03 Aug 10:20:20.546 # Redis is now ready to exit, bye bye...
[1]+ Done ./src/redis-server
[root@redis redis]# redis-cli
127.0.0.1:6379> shutdown
11851:M 03 Aug 10:20:59.580 # User requested shutdown...
11851:M 03 Aug 10:20:59.580 * Saving the final RDB snapshot before exiting.
11851:M 03 Aug 10:20:59.584 * DB saved on disk
11851:M 03 Aug 10:20:59.584 # Redis is now ready to exit, bye bye...
not connected> quit
[1]+ Done ./src/redis-server
Redis 配置
Redis 配置檔案
# 預設的配置檔案
[root@redis redis]# pwd
/usr/local/redis
[root@redis redis]# ll
-rw-rw-r-- 1 root root 46695 Jun 13 2018 redis.conf
# 建立 redis 配置檔案目錄
[root@redis redis]# mkdir /service/redis/6379 -p
# 編寫配置檔案
[root@redis redis]# vim /service/redis/6379/redis.conf
bind 172.16.1.51 127.0.0.1 # 監聽地址
port 6379 # 埠
daemonize no # 後臺啟動
pidfile /service/redis/6379/redis_6379.pid # 指定pid檔案
loglevel notice # 指定日誌級別
logfile /service/redis/6379/redis_6379.log # 指定日誌檔案
指定配置檔案啟動
[root@redis redis]# redis-server /service/redis/6379/redis.conf