redis是什麼:
redis是開源,BSD許可,進階的key-value存儲系統.,可以用來存儲字元串,哈希結構,連結清單,集合,是以,常用來提供資料結構服務。
redis和memcached的對比:
1: redis可以用來做存儲(storge), 而memccached是用來做緩存(cache)
這個特點主要因為其有”持久化”的功能.
2: 存儲的資料有”結構”,對于memcached來說,存儲的資料,隻有1種類型--”字元串”,而redis則可以存儲字元串,連結清單,哈希結構,集合,有序集合.
Redis下載下傳安裝:
1:官方站點: redis.io 下載下傳最新版或者最新stable版
wget http://download.redis.io/releases/redis-3.0.5.tar.gz
2:解壓源碼并進入目錄
tar xvf redis-3.0.5.tar.gz
cd redis-3.0.5
3: 不用configure
官方已經編譯過了
4: 直接make
Yum install gcc -y
make
make PREFIX=/path install 指定安裝檔案存放路徑
(如果是32位機器 make 32bit)
5: 指定安裝目錄,比如 /usr/local/redis
make PREFIX=/usr/local/redis install
6: make install之後,得到如下幾個檔案
redis-benchmark 性能測試工具
redis-check-aof 日志檔案檢測工(比如斷電造成日志損壞,可以檢測并修複)
redis-check-dump 快照檔案檢測工具,效果類上
redis-cli 用戶端
redis-server 服務端
7: 複制配置檔案
Cp /path/redis.conf /usr/local/redis
8: 啟動與連接配接
/path/to/redis/bin/redis-server ./path/to/conf-file
#/path/to/redis/bin/redis-cli [-h localhost -p 6379 ]
10: 讓redis以背景程序的形式運作
編輯conf配置檔案,修改如下内容;
daemonize yes
Redis配置檔案詳解:
daemonize no 是否以背景程序啟動
databases 16 建立database的數量(預設選中的是database 0)
save 900 1 #重新整理快照到硬碟中,必須滿足兩者要求才會觸發,即900秒之後至少1個關鍵字發生變化。
save 300 10 #必須是300秒之後至少10個關鍵字發生變化。
save 60 10000 #必須是60秒之後至少10000個關鍵字發生變化。
stop-writes-on-bgsave-error yes #背景存儲錯誤停止寫。
rdbcompression yes #使用LZF壓縮rdb檔案。
rdbchecksum yes #存儲和加載rdb檔案時校驗。
dbfilename dump.rdb #設定rdb檔案名。
dir ./ #設定工作目錄,rdb檔案會寫入該目錄。
slaveof <masterip> <masterport> 設為某台機器的從伺服器
masterauth <master-password> 連接配接主伺服器的密碼
slave-serve-stale-data yes # 當主從斷開或正在複制中,從伺服器是否應答
slave-read-only yes #從伺服器隻讀
repl-ping-slave-period 10 #從ping主的時間間隔,秒為機關
repl-timeout 60 #主從逾時時間(逾時認為斷線了),要比period大
slave-priority 100 #如果master不能再正常工作,那麼會在多個slave中,選擇優先值最小的一個slave提升為master,優先值為0表示不能提升為master。
repl-disable-tcp-nodelay no #主端是否合并資料,大塊發送給slave
slave-priority 100 從伺服器的優先級,當主服挂了,會自動挑slave priority最小的為主服
requirepass foobared # 需要密碼
rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共環境,可以重命名部分敏感指令 如config
maxclients 10000 #最大連接配接數
maxmemory <bytes> #最大使用記憶體
maxmemory-policy volatile-lru #記憶體到極限後的處理
volatile-lru -> LRU算法删除過期key
allkeys-lru -> LRU算法删除key(不區分過不過期)
volatile-random -> 随機删除過期key
allkeys-random -> 随機删除key(不區分過不過期)
volatile-ttl -> 删除快過期的key
noeviction -> 不删除,傳回錯誤資訊
maxmemory-samples 3
appendonly no #是否僅要日志
appendfsync no # 系統緩沖,統一寫,速度快
appendfsync always # 系統不緩沖,直接寫,慢,丢失資料少
appendfsync everysec #折衷,每秒寫1次
no-appendfsync-on-rewrite no #為yes,則其他線程的資料放記憶體裡,合并寫入(速度快,容易丢失的多)
auto-AOF-rewrite-percentage 100 目前aof檔案是上次重寫是大N%時重寫
auto-AOF-rewrite-min-size 64mb aof重寫至少要達到的大小
slowlog-log-slower-than 10000 #記錄響應時間大于10000微秒的慢查詢
slowlog-max-len 128 # 最多記錄128條
time 傳回時間戳+微秒
dbsize 傳回key的數量
bgrewriteaof 重寫aof
bgsave 背景開啟子程序dump資料
save 阻塞程序dump資料
lastsave
slaveof host port 做host port的從伺服器(資料清空,複制新主内容)
slaveof no one 變成主伺服器(原資料不丢失,一般用于主服失敗後)
flushdb 清空目前資料庫的所有資料
flushall 清空所有資料庫的所有資料(誤用了怎麼辦?)
shutdown [save/nosave] 關閉伺服器,儲存資料,修改AOF(如果設定)
slowlog get 擷取慢查詢日志
slowlog len 擷取慢查詢日志條數
slowlog reset 清空慢查詢
info []
config get 選項(支援*通配)
config set 選項 值
config rewrite 把值寫到配置檔案
config restart 更新info指令的資訊
debug object key #調試選項,看一個key的情況
debug segfault #模拟段錯誤,讓伺服器崩潰
object key (refcount|encoding|idletime)
monitor #打開控制台,觀察指令(調試用)
client list #列出所有連接配接
client kill #殺死某個連接配接 CLIENT KILL 127.0.0.1:43501
client getname #擷取連接配接的名稱 預設nil
client setname "名稱" #設定連接配接名稱,便于調試
連接配接指令
auth 密碼 密碼登陸(如果有密碼)
ping 測試伺服器是否可用
echo "some content" 測試伺服器是否正常互動