1. 程式人生 > >安裝配置Redis

安裝配置Redis

Redis官網:https://redis.io

Redis是完全開源免費的,遵守BSD協議.
Redis是一個高效能的key-value資料庫.

Redis具有以下特點

  1. 支援資料持久化,可將記憶體中的資料儲存至磁碟,重啟後可以再次載入進行使用.
  2. 支援五種資料型別.
  3. 支援資料庫備份.

Redis的優勢

  1. 效能極高,讀110000次/s,寫81000次/s.
  2. 豐富的資料型別,String、Lists、Hashes、Sets以及Ordered Sets.
  3. 所有操作都是原子性的,意思是要麼成功執行要麼完全失敗不執行,多個操作支援事物,即MULTI和EXEC指令包起來.
  4. 豐富的特性,支援publish/subscribe、通知、key過期等特性.

Redis資料型別
·
1.String 字串
redis的string可以包含任何資料型別,包括圖片以及序列化的物件.
一個鍵最大能儲存512MB.
·
2.Hash 雜湊
redis的hash是一個string型別的key和value對映表.
hash特別適合儲存物件,類比Python中的字典.
·
3.List 列表
redis的list是簡單的字串列表,按照插入順序排序.
可以從兩端進行新增,類似於雙向連結串列,還可以進行阻塞.
·
4.Set 集合
redis的set是字串型別的集合,無序且不重複.
集合是通過雜湊表實現的,所以增刪查的時間複雜度都是O(1).
·
5. Zset 有序集合


redis的zset和set基本一樣,不同的是zset每個元素都會關聯一個double型別的分數.
redis正是通過對這個分數的排序來實現集合的有序儲存.


安裝

進入官網,下載Redis:
在這裡插入圖片描述
在這裡插入圖片描述
下載完成後,按如下步驟安裝
·
1.進入redis所在資料夾,輸入命令將其解壓到/usr/local目錄下:

tar zxf redis-5.0.2.tar.gz -C /usr/local

·
2.進入解壓後的資料夾,開始編譯安裝:

make && sudo make install

·
3.啟動redis:

redis-server &

在這裡插入圖片描述

關閉Redis

redis-cli shutdown

如果無法正常關閉,可使用kill命令:

# 獲取最後一次啟動的redis例項的PID
redisPID=`ps -ef | grep redis | awk 'NR==1{print $2}'`
# 殺死redis程序,-9表示強制
kill -9 $redisPID

配置

1.安裝完畢後,在redis目錄下新建3個資料夾:

mkdir bin etc db

·
2. 把/usr/local/redis/src目錄下的如下4個檔案cp到/usr/local/redis/bin目錄下:

cd /usr/local/redis/src
# -p表示複製許可權
cp -p mkreleasehdr.sh redis-benchmark redis-check-rdb redis-cli redis-server ../bin/

·
3. 將/usr/local/redis目錄下的redis.conf檔案拷貝到/usr/local/redis/etc目錄下:

cd /usr/local/redis
cp -p redis.conf etc/

·
4.如下,修改配置檔案/usr/local/redis/etc/redis.conf:

vim /usr/local/redis/etc/redis.conf

關於vim編輯器的用法,百度一下.
也可通過redis-cli命令進入互動模式進行配置,詳見文章結尾.

配置檔案 redis.conf
·
修改為守護模式
daemonize yes
·
設定程序鎖檔案
pidfile /usr/local/redis/redis.pid
·
指定埠
port 6379
·
修改可連線的網斷
bind 127.0.0.1
·
修改客戶端超時時間
timeout 300
·
修改日誌級別
loglevel debug
·
指定日誌檔案位置
logfile /usr/local/redis/log-redis.log
·
設定資料庫的數量,可以使用SELECT 命令在連線上指定資料庫id
databases 16
·
指定本地資料庫檔名
dbfilename dump.rdb
·
指定本地資料庫路徑
dir /usr/local/redis/db/

指定儲存至本地資料庫時是否壓縮資料
rdbcompression yes
·
預設為yes,redis採用LZF壓縮
如果為了節省CPU時間,可以註釋掉該選項,但會導致資料庫檔案變的巨大

指定在多長時間內,有多少次更新操作才將資料同步到資料檔案
redis預設提供了3個條件:
save 900 1
save 300 10
save 60 10000
·
還可以多個條件配合
save < seconds> <changes>

指定是否在每次更新操作後進行日誌記錄
appendonly no
·
redis在預設情況下是非同步的把資料寫入磁碟,如果不開啟,可能會在斷電時導致一段時間內的資料丟失
因為 redis本身同步資料檔案是按上面的save條件來同步的,所以有的資料會在一段時間內只存在於記憶體中

指定更新日誌條件,
appendfsync everyses
·
此配置有3個可選值:
no:等待作業系統進行資料快取同步到磁碟(快)
always:每次更新操作後手動呼叫fsync()將資料寫到磁碟(慢,安全)
everysec:每秒同步一次(折衷,預設值)


最後,啟動服務:

redis-server /usr/local/redis/etc/redis.conf 

·
進入互動模式:

# -h:指定redis主機IP  -p:指定服務埠
redis-cli -h 127.0.0.1 -p 6379

·
互動模式中的操作:

# 獲取所有配置項
reids 127.0.0.1:6379> config get *

# 獲取單個配置項:config get 配置名
redis 127.0.0.1:6379> config get loglevel

# 編輯配置:config set 配置名 "新的引數"
redis 127.0.0.1:6379> config set loglevel "debug"