1. 程式人生 > >1.2 redis

1.2 redis

day07筆記 Linux

推薦的歌: 浪子回頭

去年回顧

mariadb
1.yum安裝
yum install mariadb-server mariadb -y
2.yum安裝好之後,啟動服務端,只有通過yum安裝的軟體才可以用systemctl
systemctl start mariadb
3.資料庫初始化
4.mysql -uroot -p

redis
1.原始碼包安裝redis
2.指定了/opt/redis/工作目錄
3.啟動redis服務端
redis-server redis.conf
4.redis.conf軟體的配置檔案作用?
給這個軟體,指定開放/關閉一些功能
改redis埠
改redis密碼
redis的安全模式
bind引數,指定redis啟動的ip地址

殺死redis服務的方法
1.kill pid
2.pkill redis-server 根據服務名 殺死程序,可以殺死所有有關redis-server

1.在linux伺服器上安裝軟體
分好幾種:
-yum安裝
-配置yum源,配置163,清華,阿里雲的yum源
-清空yum快取
-生成新的yum快取
-原始碼安裝
-下載軟體的原始碼壓縮包
-解壓縮,切換目錄
-釋放makefile,編譯,編譯安裝
-rpm軟體包安裝

遠端連線工具 xshell( ssh [email protected] )
mac同學 ssh [email protected]

今年所學

redis釋出訂閱

三個角色,提供的redis命令
1.釋出者
publish 頻道 訊息 給頻道發訊息
2.訂閱者
SUBSCRIBE 頻道 訂閱頻道
PSUBSCRIBE 頻道* 支援模糊匹配的訂閱
3.頻道
channel 頻道名 自定義

redis持久化之RDB
1.在配置檔案中新增引數,開啟rdb功能
redis.conf 寫入
port 6379
daemonize yes
logfile /data/6379/redis.log
dir /data/6379
dbfilename s15.rdb
save 900 1 #rdb機制 每900秒 有1個修>改記錄
save 300 10 #每300秒 10個修改
記錄
save 60 10000 #每60秒內 10000修>改記錄
2.開啟redis服務端,測試rdb功能
redis-server redis.conf

redis持久化之aof
1.開啟aof功能,在redis.conf中新增引數
port 6379
daemonize yes
logfile /data/6379/redis.log
dir /data/6379
appendonly yes
appendfsync everysec
2.啟動redis服務端,指定aof功能,測試持久化資料

redis不重啟之rdb資料切換到aof資料
1.準備rdb的redis服務端
redis-server s15-redis.conf (註明這是在rdb持久化模式下)

2.切換rdb到aof
redis-cli 登入redis,然後通過命令,啟用aof持久化
127.0.0.1:6379> CONFIG set appendonly yes #用命令啟用aof持久化(臨時生效,注意寫入到配置檔案)
OK
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> CONFIG SET save "" #關閉rdb持久化

2.5 將aof操作,寫入到配置檔案,永久生效,下次重啟後生效
port 6379
daemonize yes
logfile /data/6379/redis.log
dir /data/6379

#dbfilename   s15.rdb
#save 900 1  
#save 300 10 
#save 60  10000 
appendonly yes
appendfsync everysec

3.測試aof資料持久化 ,殺掉redis,重新啟動
kill
redis-server s15-redis.conf

4.寫入資料,檢查aof檔案

redis的主從同步

1.檢查redis資料庫資訊,主從狀態的命令
redis-cli -p 6379 info 檢查資料庫資訊
redis-cli -p 6379 info replication 檢查資料庫主從資訊

1.準備三個redis配置檔案,通過埠的區分,啟動三個redis資料庫例項,然後配置主從複製
redis-6379.conf
port 6379
daemonize yes
pidfile /data/6379/redis.pid
loglevel notice
logfile "/data/6379/redis.log"
dbfilename dump.rdb
dir /data/6379

redis-6380.conf

通過命令快速生成配置檔案

sed "s/6379/6380/g" redis-6379.conf > redis-6380.conf
slaveof 127.0.0.1 6379 #指明主庫的身份ip 和埠

redis-6381.conf

通過命令快速生成配置檔案

sed "s/6379/6381/g" redis-6379.conf > redis-6381.conf
slaveof 127.0.0.1 6379

2.啟動三個資料庫例項,檢測redis主從同步方案

3.redis主從賦值,故障手動切換,
1.殺死6379的主庫例項
kill 主庫

2.手動切換主從身份
    1.登入 redis-6380 ,通過命令,去掉自己的從庫身份,等待連線
        slaoveof no one  
    2.登入redis-6381 ,通過命令,生成新的主任
        slaveof 127.0.0.1 6380  

3.測試新的主從資料同步

redis哨兵
1.什麼是哨兵呢?保護redis主從叢集,正常運轉,當主庫掛掉之後,自動的在從庫中挑選新的主庫,進行同步

2.redis哨兵的安裝配置
1. 準備三個redis資料庫例項(三個配置檔案,通過埠區分)
[[email protected] redis-4.0.10]# redis-server redis-6379.conf
[[email protected] redis-4.0.10]# redis-server redis-6380.conf
[[email protected] redis-4.0.10]# redis-server redis-6381.conf
2.準備三個哨兵,準備三個哨兵的配置檔案(僅僅是埠的不同26379,26380,26381)
-rw-r--r-- 1 root root 227 Jan 2 18:44 redis-sentinel-26379.conf
port 26379
dir /var/redis/data/
logfile "26379.log"

    sentinel monitor s15master 127.0.0.1 6379 2

    sentinel down-after-milliseconds s15master 30000

    sentinel parallel-syncs s15master 1

    sentinel failover-timeout s15master 180000
    daemonize yes


-rw-r--r--  1 root root    227 Jan  2 18:45 redis-sentinel-26380.conf
    快速生成配置檔案
    sed "s/26379/26380/g" redis-sentinel-26379.conf >  redis-sentinel-26380.conf 
-rw-r--r--  1 root root    227 Jan  2 18:46 redis-sentinel-26381.conf
    sed "s/26379/26381/g" redis-sentinel-26379.conf >  redis-sentinel-26381.conf 

3.新增後臺執行引數,使得三個哨兵程序,後臺執行

[[email protected] redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26379.conf
[[email protected] redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26380.conf
[[email protected] redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26381.conf

4.啟動三個哨兵
    1003  redis-sentinel redis-sentinel-26379.conf 
    1007  redis-sentinel redis-sentinel-26380.conf 
    1008  redis-sentinel redis-sentinel-26381.conf 
    
5.檢查哨兵的通訊狀態
redis-cli -p 26379  info sentinel 
檢視結果如下之後,表示哨兵正常
    [[email protected] redis-4.0.10]# redis-cli -p 26379  info sentinel 
    # Sentinel
    sentinel_masters:1
    sentinel_tilt:0
    sentinel_running_scripts:0
    sentinel_scripts_queue_length:0
    sentinel_simulate_failure_flags:0
    master0:name=s15master,status=ok,address=127.0.0.1:6381,slaves=2,sentinels=3

6.殺死一個redis主庫,6379節點,等待30s以內,檢查6380和6381的節點狀態
kill 6379主節點
redis-cli -p 6380 info replication 
redis-cli -p 6381 info replication 
如果切換的主從身份之後,(原理就是更改redis的配置檔案,切換主從身份)

7.恢復6379節點的資料庫,檢視是否將6379新增為新的slave身份

redis-cluster安裝配置
1.準備6個redis資料庫例項,準備6個配置檔案redis-{7000....7005}配置檔案
-rw-r--r-- 1 root root 151 Jan 2 19:26 redis-7000.conf
-rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7001.conf
-rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7002.conf
-rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7003.conf
-rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7004.conf
-rw-r--r-- 1 root root 151 Jan 2 19:27 redis-7005.conf

2.啟動6個redis資料庫例項
[[email protected] s15rediscluster]# redis-server redis-7000.conf
[[email protected] s15rediscluster]# redis-server redis-7001.conf
[[email protected] s15rediscluster]# redis-server redis-7002.conf
[[email protected] s15rediscluster]# redis-server redis-7003.conf
[[email protected] s15rediscluster]# redis-server redis-7004.conf
[[email protected] s15rediscluster]# redis-server redis-7005.conf

3.配置ruby語言環境,指令碼一鍵啟動redis-cluster
1.下載ruby語言的原始碼包,編譯安裝
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
2.解壓縮
./configure --prefix=/opt/ruby/ 釋放makefile
make && make install 編譯且安裝
3.下載安裝ruby操作redis的模組包
wget http://rubygems.org/downloads/redis-3.3.0.gem

4.配置ruby的環境變數
echo $PATH

vim /etc/profile
寫入最底行
PATH=$PATH:/opt/ruby/bin/
讀取檔案
source /etc/profile 

5.通過ruby的包管理工具去安裝redis包,安裝後會生成一個redis-trib.rb這個命令
一鍵建立redis-cluster 其實就是分配主從關係 以及 槽位分配 slot槽位分配
/opt/redis-4.0.10/src/redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

6.檢查節點主從狀態
redis-cli -p 7000  info replication 

7.向redis叢集寫入資料,檢視資料流向
redis-cli -p 7000    #這裡會將key自動的重定向,放到某一個節點的slot槽位中
set  name  s15 
set  addr shahe  

nginx 入門學習

web伺服器軟體

windows
IIS伺服器
linux
nginx

apache 收費

lighthttp 

公司的技術棧
收費版技術棧
apache web伺服器 + java + tomcat應用伺服器 + oracle + memcached + redhat 企業版linux + svn(程式碼管理工具)

開源的技術棧(路飛學城)
nginx(負載均衡) + python(virtualenv) +
uwsgi (python的應用伺服器,啟動了10個程序處理django drf 請求)

  • mysql (阿里雲的rds主從複製)
    +redis的主從賦值
    +git
    +vue前端程式碼伺服器
    +linux(阿里雲的centos7)

curl -I 網站域名 可以檢視網站的響應頭資訊 檢視網站用了什麼伺服器

1.yum解決編譯nginx所需的依賴包,之後你的nginx就不會報錯了

yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y

2.安裝配置nginx軟體,下載原始碼
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
3.解壓縮原始碼,編譯且安裝
tar -zxvf nginx-1.12.0.tar.gz
切換原始碼目錄
./configure --prefix=/opt/nginx112/
make && make install
4.進入nginx的工作目錄
cd /opt/ngin112/

5.檢視gninx的工作目錄
[[email protected] nginx112]# ls
conf 配置檔案目錄
html 網頁根目錄,你的index.html就放在這裡,然後通過域名訪問 pythonav.cn/index.html html/index.html
logs 日誌
sbin 存放nginx可執行命令的

6.定製自己的nginx網站
修改/opt/nginx112/html/index.html 這是nginx網頁根檔案,清空內容寫入自己的html標籤

7.啟動nginx伺服器
/opt/nginx112/sbin/nginx 直接回車執行

8.檢查nginx服務埠
ps -ef|grep nginx

9.通過windows訪問nginx web服務
瀏覽器 訪問http://192.168.13.79