redis是一種基於鍵值對(key-value)數據庫,其中value能夠爲string、hash、list、set、zset等多種數據結構,能夠知足不少應用場景。還提供了鍵過時,發佈訂閱,事務,流水線,等附加功能,php
流水線: Redis 的流水線功能容許客戶端一次將多個命令請求發送給服務器, 並將被執行的多個命令請求的結果在一個命令回覆中所有返回給客戶端, 使用這個功能能夠有效地減小客戶端在執行多個命令時須要與服務器進行通訊的次數。java
特性: node
1〉速度快,數據放在內存中,官方給出的讀寫性能10萬/S,與機器性能也有關python
a,數據放內存中是速度快的主要緣由c++
b,C語言實現,與操做系統距離近redis
c,使用了單線程架構,預防多線程可能產生的競爭問題數據庫
2〉鍵值對的數據結構服務器後端
3〉豐富的功能:見上功能緩存
4〉簡單穩定:單線程安全
5〉持久化:發生斷電或機器故障,數據可能會丟失,持久化到硬盤
6〉主從複製:實現多個相同數據的redis副本
8〉高可用和分佈式:哨兵機制實現高可用,保證redis節點故障發現和自動轉移
9〉客戶端語言多:java php python c c++ nodejs等
下載源碼,解壓縮後編譯源碼。
$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ cd redis-4.0.6 $ make mkdir /usr/local/reids cp redis-server /usr/local/redis cp redis-benchmark /usr/local/redis cp redis-check-rdb /usr/local/redis cp redis-sentinel /usr/local/redis cp redis-cli /usr/local/redis cp redis.conf /usr/local/redis
遠程訪問6379節點(後期作爲主節點使用):
redis.conf 修改 requirepass 12345678 註釋掉bind 127.0.0.1
從節點redis6380.conf, redis6381.conf:
修改 requirepass 12345678 ,註釋掉bind 127.0.0.1, 加上masterauth 12345678 ,
加上slaveof 127.0.0.1 6379
redis sentinel哨兵機制配置(也是3個節點):
/usr/local/bin/conf/sentinel_26379.conf /usr/local/bin/conf/sentinel_26380.conf /usr/local/bin/conf/sentinel_26381.conf
將三個文件的端口改爲: 26379 26380 26381
而後:
sentinel monitor mymaster 127.0.0.1 6379 2 //監聽主節點6379 sentinel auth-pass mymaster 12345678 //鏈接主節點時的密碼
三個配置除端口外,其它同樣。
啓動sentinel服務:
./redis-sentinel conf/sentinel_26379.conf & ./redis-sentinel conf/sentinel_26380.conf & ./redis-sentinel conf/sentinel_26381.conf &
測試:kill -9 6379 殺掉6379的redis服務
看日誌是分配6380 仍是6381作爲主節點,當6379服務再啓動時,已變成從節點
若是6380升級爲主節點:進入6380>info replication 能夠看到role:master
打開sentinel_26379.conf等三個配置,sentinel monitor mymaster 127.0.0.1 6380 2
外部應用鏈接sentinel時, sentinel.conf的protected-mode no改爲no
./redis-cli -p 26380 shutdown //關閉
可執行文件 |
做用 |
redis-server |
啓動redis |
redis-cli |
redis命令行客戶端 |
redis-benchmark |
基準測試工具 |
redis-check-aof |
AOF持久化文件檢測和修復工具 |
redis-check-dump |
RDB持久化文件檢測和修復工具 |
redis-sentinel |
啓動哨兵 |
redis-server啓動:
edis-cli 啓動:
1,>交互式:redis-cli -h {host} -p {prot}鏈接到redis服務,沒有h默認連127.0 redis-cli -h 127.0.0.1 -p 6379 //沒有p 默認連6379 2,>命令式:redis-cli -h 127.0.0.1 -p 6379 get hello //取key=hello的value 3,>中止redis服務: redis-cli shutdown 注意: a,關閉時:斷開鏈接,持久化文件生成,相對安全 b,還能夠用kill關閉,此方式不會作持久化,還會形成緩衝區非法關閉,可能會形成AOF和丟失數據 c,關閉前生成持久化文件: 使用redis-cli -a 123456 登陸進去,再shutdown nosave|save
1,版本號第二位爲奇數,爲非穩定版本(2.七、2.九、3.1)
2,第二爲偶數,爲穩定版本(2.六、2.八、3.0)
3,當前奇數版本是下一個穩定版本的開發版本,如2.9是3.0的開發版本