Redis官網:https://redis.io Redis是完全開源免費的,遵守 "BSD協議" . Redis是一個高性能的 資料庫. @[TOC] Redis具有以下特點 1. 支持數據持久化,可將記憶體中的數據保存至磁碟,重啟後可以再次載入進行使用. 2. 支持五種數據類型. 3. 支持資料庫 ...
目錄
Redis官網:https://redis.io
Redis是完全開源免費的,遵守BSD協議.
Redis是一個高性能的key-value
資料庫.
@
***
Redis具有以下特點
- 支持數據持久化,可將記憶體中的數據保存至磁碟,重啟後可以再次載入進行使用.
- 支持五種數據類型.
- 支持資料庫備份.
Redis的優勢
- 性能極高,讀110000次/s,寫81000次/s.
- 豐富的數據類型,String、Lists、Hashes、Sets以及Ordered Sets.
- 所有操作都是原子性的,意思是要麼成功執行要麼完全失敗不執行,多個操作支持事物,即MULTI和EXEC指令包起來.
- 豐富的特性,支持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).
·
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 && make install
·
3.啟動測試redis:redis-server &
關閉Redis
# 進入交互模式 redis-cli # 執行關閉命令 shutdown
如果無法正常關閉,可直接對其PID進行操作:
# 下麵兩種方法,直接幹掉所有redis實例 killall redis-server pkill redis-server
redis的可執行文件
.
redis-benchmark
用於進行redis性能測試的工具
redis-check-dump
用於修複出問題的dump.rdb文件
redis-cli
redis的客戶端
redis-server
redis的服務端
redis-check-aof
用於修複出問題的AOF文件
redis-sentinel
用於集群管理
配置
這裡根據自己的配置習慣進行配置.
.
1.安裝完畢後,在redis目錄下新建3個文件夾:mkdir bin etc db
·
- 把/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/
·
- 將/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編輯器的用法請參考:【 正確使用vim編輯器的姿勢】
也可通過redis-cli
命令進入交互模式進行配置,詳見文章結尾.
配置文件 redis.conf
·
埠
port 6380
.
監聽地址
bind 0.0.0.0
.
開啟daemon模式,即後臺運行
daemonize yes
.
pid文件路徑
pidfile /var/run/redis/6380.pid
.
日誌級別
loglevel notice
.
redis數據存放位置
dir /usr/local/redis5/db/6380/
.
日誌文件路徑
logfile /var/log/redis/6380.log
.
redis3.0之後的安全模式
安全模式可能會阻擋遠程連接,可給redis設置密碼解決這個問題
protected-mode yes
.
reids密碼
requirepass redis@123456
·
修改客戶端超時時間
timeout 300
·
設置資料庫的數量,可以使用SELECT <dbid>命令在連接上指定資料庫id
databases 16
指定存儲至本地資料庫時是否壓縮數據
rdbcompression yes
·
預設為yes,redis採用LZF壓縮
如果為了節省CPU時間,可以註釋掉該選項,但會導致資料庫文件變的巨大
指定本地資料庫文件名,其存儲的數據為二進位類型
dbfilename dump.rdb
.
指定在多長時間內,有多少次更新操作才將數據同步到數據文件
redis預設提供了3個條件:
save 900 1
每900秒內有1個修改記錄時轉存
save 300 10
每300秒內有10個修改記錄時轉存
save 60 10000
每60秒內有10000修改記錄時轉存
·
還可以多個條件配合
save <seconds> <changes>
指定是否在每次更新操作後進行日誌記錄
appendonly no
·
redis在預設情況下是非同步的把數據寫入磁碟,如果不開啟,可能會在斷電時導致一段時間內的數據丟失
因為redis本身同步數據文件是按上面的save條件來同步的,所以有的數據會在一段時間內只存在於記憶體中
.
指定更新日誌條件,
appendfsync everyses
此配置有3個可選值:
no
:等待操作系統進行數據緩存同步到磁碟(快)
always
:每次更新操作後手動調用fsync()將數據寫到磁碟(慢,安全)
everysec
:每秒同步一次(折衷,預設值)
***
最後,啟動服務:# 指定配置文件進行啟動 redis-server /usr/local/redis/etc/redis_6380.conf
·
進入交互模式:# -h:指定redis主機IP -p:指定服務埠 -a:指定redis密碼 redis-cli -h 127.0.0.1 -p 6380 -a redis_password
·
交互模式中的操作:# 獲取所有配置項 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" # 檢查是否設置的密碼 127.0.0.1:6380> CONFIG get requirepass # 如果沒有密碼,也可給redis設置密碼 127.0.0.1:6380> CONFIG set requirepass "xxxxxx" """以下操作可實現在運行狀態下切換RDB備份模式至AOF備份模式""" # 開啟AOF存儲模式 127.0.0.1:6379> CONFIG set appendonly yes # 關閉RDB存儲模式 127.0.0.1:6379> CONFIG SET save "" # 更改完存儲模式後別忘了修改配置文件