Redis介紹與安裝

Redis介紹

       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等

使用場景

  1. 緩存:合理使用緩存加快數據訪問速度,下降後端數據源壓力
  2. 排行榜:按照熱度排名,按照發布時間排行,主要用到列表和有序集合
  3. 計數器應用:視頻網站播放數,網站瀏覽數,使用redis計數
  4. 社交網絡:贊、踩、粉絲、下拉刷新
  5. 消息隊列:發佈和訂閱

正確安裝與啓動

下載源碼,解壓縮後編譯源碼。

$ 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配置、啓動、操做、關閉

可執行文件

做用

redis-server

啓動redis

redis-cli

redis命令行客戶端

redis-benchmark

基準測試工具

redis-check-aof

AOF持久化文件檢測和修復工具

redis-check-dump

RDB持久化文件檢測和修復工具

redis-sentinel

啓動哨兵

 

redis-server啓動:

  1. 默認配置:redis-server, 日誌輸出版本信息,端口6379
  2. 運行啓動:redis-server --port 6380  不建議
  3. 配置文件啓動: redis-server /opt/redis/redis.conf,靈活,生產環境使用這種

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的開發版本

相關文章
相關標籤/搜索