Linux 安裝 Redis Redis持久化 (RDB AOF) 發佈訂閱

linux redis 學習

  1. 安裝redis的方式
    -yum (刪除這個yum安裝的redis,咱們只用源碼編譯安裝的)
    -rpm
    -源碼編譯html

  2. 刪除本來的redis
    yum remove redis -ylinux

  3. 下載redis源碼
    wget http://download.redis.io/releases/redis-4.0.10.tar.gz
  4. 解壓縮
    tar -zxf redis-4.0.10.tar.gzredis

  5. 切換redis源碼目錄
    cd redis-4.0.10數據庫

  6. 編譯源文件
    make
    • 編譯好後,src/目錄下有編譯好的redis指令
    • make install 安裝到指定目錄,
  7. 默認在/usr/local/bin緩存

  8. 指定redis的配置文件 啓動 redis
    redis-6666.conf 內容以下app

    port 6666        #redis端口
    daemonize yes       #後臺運行redis  
    pidfile /data/6666/redis.pid # pid號碼
    loglevel notice  #日誌等級
    logfile "/data/6666/redis.log"    #日誌文件存放路徑
    dir /data/6666   #redis數據目錄 
    requirepass haohaio  #redis的密碼
  9. 指定配置文件啓動redis服務端
    redis-server redis-6666.confide

  10. 檢查redis的進程,端口
    ps -ef |grep redis
    netstat -tunlp |grep redis學習

  11. 登陸redis數據庫
    redis-cli -p 6666
    登陸後 輸入密碼纔可訪問
    auth haohaioui

redis持久化之RDB持久化

  1. rdb持久化,能夠手動觸發持久化,經過redis的save命令,觸發
  2. rdb數據文件是壓縮過的 二進制文件,認爲看不懂,redis經過這個文件恢復數據
  3. rdb持久化還有時間策略
    save 900 1 # 秒 1個修改類的操做
    save 300 10 # 秒 10個操做
    save 60 10000 # 秒 10000個操做日誌

  4. 使用rdb持久化的方式,在配置文件中,打開rdb持久化
    cat redis-6666.conf
    內容以下

    port 6666
    daemonize yes
    pidfile /data/6666/redis.pid
    loglevel notice
    logfile "/data/6666/redis.log"
    dir /data/6666
    dbfilename redis.dump
  5. 關閉redis服務端,準備重啓
    redis-cli -p 6666 -a haohaio shutdown

  6. 使用新的支持rdb持久化的配置文件啓動
    redis-server redis-6666.conf

  7. 手動觸發rdb持久化
    經過save指令

  8. 讓配置文件支持按期持久化

    port 6666
    daemonize yes
    pidfile /data/6666/redis.pid
    loglevel notice
    logfile "/data/6666/redis.log"
    dir /data/6666
    dbfilename redis.dump
    save 900 1                    #rdb機制 每900秒 有1個修改記錄
    save 300 10                    #每300秒        10個修改記錄
    save 60  10000 
    ~

redis持久化之AOF

  1. 配置redis支持aof持久化
    cat redis-6666.conf
    內容以下

    port 6666
     daemonize yes
     pidfile /data/6666/redis.pid
     loglevel notice
     logfile "/data/6666/redis.log"
     dir /data/6666
     appendonly yes
     appendfsync everysec
  2. 指定配置文件啓動,支持aof
    redis-server redis-6666.conf 在第一次啓動的時候,就開啓了aof持久化

  3. 不重啓redis,切換rdb數據到aof數據中

    1. 準備一個rdb的redis數據庫

      port 6666
      daemonize yes
      pidfile /data/6666/redis.pid
      loglevel notice
      logfile "/data/6666/redis.log"
      dir /data/6666
      dbfilename redis.dump
      save 900 1                
      save 300 10        
      save 60  10000
    2. 啓動redis支持rdb的數據庫

    3. 設置redis的數據,手動save觸發持久化,生成持久化數據文件

    4. 經過命令,切換持久化模式
      127.0.0.1:6379> CONFIG set appendonly yes #開啓AOF功能
      OK
      127.0.0.1:6379> CONFIG SET save "" #關閉RDB功能
      OK

    5. 修改redis的配置文件,改成aof,便於之後重啓,徹底切換到aof模式
      redis-6666.conf內容以下

      port 6666
      daemonize yes
      pidfile /data/6666/redis.pid
      loglevel notice
      logfile "/data/6666/redis.log"
      dir /data/6666
      appendonly yes
      appendfsync everysec
    6. 實驗完畢

      redis-server redis.conf

redis發佈訂閱:

  • PUBLISH channel msg
    將信息 message 發送到指定的頻道 channel

  • SUBSCRIBE channel [channel ...]
    訂閱頻道,能夠同時訂閱多個頻道

  • UNSUBSCRIBE [channel ...]
    取消訂閱指定的頻道, 若是不指定頻道,則會取消訂閱全部頻道

  • PSUBSCRIBE pattern [pattern ...]
    訂閱一個或多個符合給定模式的頻道,每一個模式以 * 做爲匹配符,好比 it* 匹配所 有以 it 開頭的頻道( it.news 、 it.blog 、 it.tweets 等等), news.* 匹配全部 以 news. 開頭的頻道( news.it 、 news.global.today 等等),諸如此類

  • PUNSUBSCRIBE [pattern [pattern ...]]
    退訂指定的規則, 若是沒有參數則會退訂全部規則
  • PUBSUB subcommand [argument [argument ...]]
    查看訂閱與發佈系統狀態
  • 注意:使用發佈訂閱模式實現的消息隊列,當有客戶端訂閱channel後只能收到後續發佈到該頻道的消息,以前發送的不會緩存,必須Provider和Consumer同時在線。

博客地址:
http://www.javashuo.com/article/p-ufazueso-co.html 博客彙總
http://www.javashuo.com/article/p-cglbaabl-eh.html redis

相關文章
相關標籤/搜索