```
# Example sentinel.conf
# 哨兵sentinel實例運行的端口 默認26379
port 26379
# 哨兵sentinel的工作目錄
dir /tmp
# 哨兵sentinel監控的redis主節點的 ip port
# master-name 可以自己命名的主節點名字 只能由字母A-z、數字0-9 、這三個字符".-_"組成。
# quorum 當這些quorum個數sentinel哨兵認為master主節點失聯 那么這時 客觀上認為主節點失聯了
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 1
# 當在Redis實例中開啟了requirepass foobared 授權密碼 這樣所有連接Redis實例的客戶端都要提供密碼
# 設置哨兵sentinel 連接主從的密碼 注意必須為主從設置一樣的驗證密碼
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster MySUPER--secret-0123passw0rd
# 指定多少毫秒之后 主節點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節點下線 默認30秒
# sentinel down-after-milliseconds <master-name> <milliseconds>
sentinel down-after-milliseconds mymaster 30000
# 這個配置項指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行 同步,
這個數字越小,完成failover所需的時間就越長,
但是如果這個數字越大,就意味著越 多的slave因為replication而不可用。
可以通過將這個值設為 1 來保證每次只有一個slave 處于不能處理命令請求的狀態。
# sentinel parallel-syncs <master-name> <numslaves>
sentinel parallel-syncs mymaster 1
# 故障轉移的超時時間 failover-timeout 可以用在以下這些方面:
#1. 同一個sentinel對同一個master兩次failover之間的間隔時間。
#2. 當一個slave從一個錯誤的master那里同步數據開始計算時間。直到slave被糾正為向正確的master那里同步數據時。
#3.當想要取消一個正在進行的failover所需要的時間。
#4.當進行failover時,配置所有slaves指向新的master所需的最大時間。不過,即使過了這個超時,slaves依然會被正確配置為指向master,但是就不按parallel-syncs所配置的規則來了
# 默認三分鐘
# sentinel failover-timeout <master-name> <milliseconds>
sentinel failover-timeout mymaster 180000
# SCRIPTS EXECUTION
#配置當某一事件發生時所需要執行的腳本,可以通過腳本來通知管理員,例如當系統運行不正常時發郵件通知相關人員。
#對于腳本的運行結果有以下規則:
#若腳本執行后返回1,那么該腳本稍后將會被再次執行,重復次數目前默認為10
#若腳本執行后返回2,或者比2更高的一個返回值,腳本將不會重復執行。
#如果腳本在執行過程中由于收到系統中斷信號被終止了,則同返回值為1時的行為相同。
#一個腳本的最大執行時間為60s,如果超過這個時間,腳本將會被一個SIGKILL信號終止,之后重新執行。
#通知型腳本:當sentinel有任何警告級別的事件發生時(比如說redis實例的主觀失效和客觀失效等等),將會去調用這個腳本,
#這時這個腳本應該通過郵件,SMS等方式去通知系統管理員關于系統不正常運行的信息。調用該腳本時,將傳給腳本兩個參數,
#一個是事件的類型,
#一個是事件的描述。
#如果sentinel.conf配置文件中配置了這個腳本路徑,那么必須保證這個腳本存在于這個路徑,并且是可執行的,否則sentinel無法正常啟動成功。
#通知腳本
# sentinel notification-script <master-name> <script-path>
sentinel notification-script mymaster /var/redis/notify.sh
# 客戶端重新配置主節點參數腳本
# 當一個master由于failover而發生改變時,這個腳本將會被調用,通知相關的客戶端關于master地址已經發生改變的信息。
# 以下參數將會在調用腳本時傳給腳本:
# <master-name> <role> <state> <from-ip> <from-port> <to-ip> <to-port>
# 目前<state>總是“failover”,
# <role>是“leader”或者“observer”中的一個。
# 參數 from-ip, from-port, to-ip, to-port是用來和舊的master和新的master(即舊的slave)通信的
# 這個腳本應該是通用的,能被多次調用,不是針對性的。
# sentinel client-reconfig-script <master-name> <script-path>
sentinel client-reconfig-script mymaster /var/redis/reconfig.sh
```
- Redis 介紹
- 為什么要用Nosql
- Memcached(緩存)+Mysql+ 垂直拆分
- 分庫分表+水平拆分+Mysql集群
- 什么是Nosql
- Nosql的特點
- 了解 3V+ 3高
- Redis 入門
- 概述
- Redis 能干啥
- 特性
- 常用網站
- 端口
- 查看redis是否啟動
- Redis 基本操作
- Redis切換數據庫
- 查看所有的key
- 清空當前數據庫跟清除所有數據庫
- 五大數據類型
- Redis Key
- 檢測key值是否存在
- 移除key值
- 設置keyzhi10秒鐘后消失
- 查看當前key的類型
- String(類型)
- 設置字符串
- 獲取字符串
- 追加一個值到字符串
- 獲取字符串長度
- 自增跟自減
- 字符串范圍 range
- 替換指定開始的字符串
- 設置過期時間
- 設置多個字符串/獲取多個字符串
- 檢測值不存在在創建
- List(列表類型)
- 介紹
- 左邊塞入一個值
- 獲取值
- 左邊塞入多個值
- 右邊塞入一個值
- 移除左邊或右邊第一個值
- 通過下標獲取值
- 獲取長度
- 移除指定的值
- 截取固定的值
- 移除列表最后一個元素,將他移動新的列表中
- 檢測列表是否存在
- 將列表中指定下標的值替換為另外一個值
- 往指定列表值前后插入數據
- 消息隊列 跟棧
- SET(集合)操作
- 注意
- 添加一個或多個值
- 集合獲取值
- 判斷某一個值是否在集合中
- 獲取集合中的個數
- 移除某一個元素
- 隨機一個元素
- 隨機刪除一個元素
- 移動指定的值到另一個集合中
- 交集 并集 差集
- HASH(哈希)
- Hash介紹
- 設置一個或多個值
- 獲取一個或多個值
- 獲取所有的值
- 刪除一個值
- hash獲取長度
- 判斷某個值是否存在
- 獲取所有key 跟所有value
- 自增
- 如果不存在可以設置值 /如果存在不可以設置
- 總結
- ZSEt(有序集合)
- zset添加一個或多個值
- 查看值
- 顯示全部的用戶 從小到大
- 從大到下排列
- 顯示全部的用戶,并且攜帶成績
- 顯示工資小于2900員工升序排列
- 移除元素
- 獲取個數
- 獲取指定區間的成員數
- 五大類型介紹
- 三種特殊數據類型
- geospatial(地理位置)
- HyperLoglog
- Bitmaps
- 哨兵模式的全部配置
- 事務
- Redis事務本質
- Redis 的事務流程
- 放棄事務
- 錯誤
- 悲觀鎖 與樂觀鎖
- 解鎖
- Redis配置文件詳解
- Redis 持久化
- RDB
- AOF(Append Only File)
- 發布訂閱
- Redis 主從復制
- 哨兵模式
- Redis緩存穿透(查不到
- Redis緩存擊穿(查太多了)
- Redis緩存雪崩
- laravel 操作Redis
- 配置redis
- laravel 操作 String 類型
- laravel 操作 List (隊列集合)
- laravel 操作 SET(集合)操作
- laravel 操作 ZSET(有序集合)
- laravel 操作 Hash(哈希)
- laravel 個人案例/其他業余配置