1. 程式人生 > 實用技巧 >Redis編譯安裝

Redis編譯安裝

參考:https://www.runoob.com/redis/redis-tutorial.html

一、Redis簡介

REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value儲存系統。

Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。

它通常被稱為資料結構伺服器,因為值(value)可以是 字串(String), 雜湊(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等型別。

Redis 與其他 key - value 快取產品有以下三個特點:

  • Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用。
  • Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
  • Redis支援資料的備份,即master-slave模式的資料備份。

二、Redis安裝

下載地址:http://redis.io/download,下載版本 redis-3.2.9.tar.gz

1、安裝

[root@redis01 ~]# yum install -y gcc
[root@redis01 ~]# tar xf redis-3.2.9.tar.gz 
[root@redis01 ~]# cd redis-3.2.9/
[root@redis01 redis-3.2.9]# make
[root@redis01 redis-3.2.9]# make PREFIX=/usr/local/redis install
[root@redis01 ~]# ls /usr/local/redis/
bin

2、命令介紹

redis-server            啟動redis服務
redis-cli               redis客戶端工具 
redis-benchmark         redis效能測試
redis-check-rdb         檢測rdb檔案
redis-check-aof         檢測aof日誌檔案

3、啟動

[root@redis01 ~]# mkdir /usr/local/redis/conf
[root@redis01 ~]# cd redis-3.2.9/
[root@redis01 redis-3.2.9]# cp redis.conf /usr/local/redis/conf/

[root@redis01 ~]# /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf &
[root@redis01 ~]# ss -antp | grep :6379
LISTEN     0      128    127.0.0.1:6379                     *:*                   users:(("redis-server",pid=9612,fd=4))
啟動服務時核心引數說明:

1、/proc/sys/net/core/somaxconn

    定義了系統中每一個埠最大的監聽佇列的長度,預設為128. 對於大多數需要處理高併發連線的應用來說,該值太小,建議修改為1024或者更大
    
2、overcommit_memory

    規定決定是否接受超大記憶體請求的條件。這個引數有三個可能的值:
        0 — 預設設定。核心執行啟發式記憶體過量使用處理,方法是估算可用記憶體量,並拒絕明顯無效的請求。遺憾的是因為記憶體是使用啟發式而非準確演算法計算進行部署,這個設定有時可能會造成系統中的可用記憶體超載。
        1 — 核心執行無記憶體過量使用處理。使用這個設定會增大記憶體超載的可能性,但也可以增強大量使用記憶體任務的效能。
        2 — 記憶體拒絕等於或者大於總可用 swap 大小以及 overcommit_ratio 指定的物理 RAM 比例的記憶體請求。如果您希望減小記憶體過度使用的風險,這個設定就是最好的。

3、/sys/kernel/mm/transparent_hugepage/enabled

    禁止使用huge page 

4、配置

配置檔案:/usr/local/redis/conf/redis.conf

1、指定額外的配置檔案 

# include /path/to/local.conf
# include /path/to/other.conf


2、設定redis監聽的IP地址

bind 192.168.122.101


3、設定redis程序接收的TCP佇列長度

tcp-backlog 511

同時修改核心引數/proc/sys/net/core/somaxconn 


4、設定客戶端空閒連線超時時間, 0表示不設定

timeout 0


5、設定redis啟動時作為後臺服務執行

daemonize yes


6、指定pid檔案 

pidfile /var/run/redis_6379.pid


7、設定日誌級別及日誌檔案 

loglevel notice
logfile ""


8、設定資料庫的數量  0--15

databases 16


9、設定redis儲存資料的頻率

save 900 1
save 300 10
save 60 10000

    redis儲存資料的方式:
        save, 會阻塞(block)客戶端連線請求
        bgsave


10、當bgsave發生error時,停止寫操作

stop-writes-on-bgsave-error yes


11、啟用壓縮

rdbcompression yes


12、設定rdb資料檔名稱及存放目錄

dbfilename dump.rdb
dir /usr/local/redis/data 



13、設定併發連線

maxclients 10000


14、設定redis最大使用的記憶體

# maxmemory <bytes>            //建議為實體記憶體的3/5


15、啟用redis aof功能

appendonly yes
appendfilename "appendonly.aof"