redispython
redis 是一個開源的,內存中的數據結構存儲系統,它能夠用做數據庫,緩存和消息中間件redis
一 Yum安裝redis數據庫
1 yum安裝vim
首先查看是否有redis包 yum list redis 安裝redis yum install redis -y 安裝好以後,啓動redis systemctl start redis
2 檢查redis是否正常工做緩存
redis-cli #redis 客戶端工具 #進入交換環境後,執行ping,返回PONG表示安裝成功 127.0.0.1:6379> ping PONG
二 源碼安裝redis,編譯安裝安全
步驟 1 下載redis源碼 wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2 解壓縮文件 tar -zxf redis-4.0.10.tar.gz 3 切換redis源碼目錄 cd redis-4.0.10.tar.gz 4 編譯源文件 make 5.編譯好後,src/目錄下有編譯好的redis指令 6.make install 安裝到指定目錄,默認在/usr/local/bin
啓動redis-server 服務端ruby
首先編寫配置文件啓動redis vim /opt/redis-4.0.10/redis.conf 1.更改bind參數,讓redis能夠遠程訪問 bind 0.0.0.0 2.更改redis的默認端口 port 6380 3.使用redis的密碼進行登陸 requirepass 登陸redis的密碼 4 退出配置文件,執行以下啓動服務 redis-server redis.conf
登陸redis客戶端數據結構
1 經過新的端口和密碼登陸redis redis-cli -p 6380 登陸後 auth 密碼 redis還支持交互式的參數,登陸數據庫 redis-cli -p 6380 -a redis的密碼 (這個不太安全) 2 經過登陸redis,用命令查看redis的密碼 config set requirepass 新的密碼 #設置新密碼 config get requirepass #獲取當前的密碼 過濾出文件的空白行和註釋行 grep -v "^#" redis.conf | grep -v "^$"
三 redis發佈訂閱app
三個角色,提供的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數據庫實例(三個配置文件,經過端口區分) [root@localhost redis-4.0.10]# redis-server redis-6379.conf [root@localhost redis-4.0.10]# redis-server redis-6380.conf [root@localhost 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.添加後臺運行參數,使得三個哨兵進程,後臺運行[root@localhost redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26379.conf [root@localhost redis-4.0.10]# echo "daemonize yes" >> redis-sentinel-26380.conf [root@localhost 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 查看結果以下以後,表示哨兵正常 [root@localhost 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.conf2.啓動6個redis數據庫實例 [root@localhost s15rediscluster]# redis-server redis-7000.conf [root@localhost s15rediscluster]# redis-server redis-7001.conf [root@localhost s15rediscluster]# redis-server redis-7002.conf [root@localhost s15rediscluster]# redis-server redis-7003.conf [root@localhost s15rediscluster]# redis-server redis-7004.conf [root@localhost s15rediscluster]# redis-server redis-7005.conf 八 配置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