redis的學習

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 

相關文章
相關標籤/搜索