日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制

發(fā)布時間:2024/9/27 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


Redis高級實用特征

  • 安全性(登錄授權和登錄后使用auth授權)

  • 設置客戶端連接后進行任何其他指定前需要使用的密碼。

    警告:因為redis速度相當快,所以在一臺比較好的服務器下,一個外部的用戶可以在一秒中進行150k次的密碼嘗試,這意味著你需要指定非常非常強大的密碼來防止暴力破解。

    ??修改密碼只需要在我們的配置文件中修改下面參數(shù):

    #requirepass foobared

    requirepass beijing????(紅色的就是指定的要配置的密碼)

    ??上面的一句表示的是設置連接的口令是beijing.

    vim /usr/local/redis/etc/redis.conf,文件中的toto就是redis的密碼。

    刪除服務,然后重啟redis服務

    [toto@localhost ~]$pkill redis-server

    [toto@localhost ~]$ps -ef | grep "redis"

    toto?????5737?3713? 0 14:51 pts/0???00:00:55 redis-server *:6379

    toto?????5740?3766? 0 14:51 pts/1???00:00:00 redis-cli

    toto????12995?5737? 0 21:47 pts/0???00:00:00 [redis-server] <defunct>

    toto????12997?5364? 0 21:47 pts/2???00:00:00 grep redis

    [toto@localhost ~]$ kill -9 5737

    [toto@localhost ~]$ kill -9 5740

    ?[toto@localhost ~]$ ps -ef | grep "redis"

    toto????13013?5364? 0 21:48 pts/2???00:00:00 grep redis

    [toto@localhost ~]$/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

    客戶端登錄

    [toto@localhost bin]$ redis-cli

    127.0.0.1:6379> keys *

    (error) NOAUTH Authentication required.??????//沒有授權之前輸出這一行

    127.0.0.1:6379>auth toto??????????????????//使用配置的toto這個密碼來授權

    OK

    127.0.0.1:6379> keys *????????????????????//授權之后可以使用keys *

    (empty list or set)

    127.0.0.1:6379> set name toto

    OK

    127.0.0.1:6379> keys *

    1) "name"

    127.0.0.1:6379>

    如果想在登錄之后就可以直接使用各種命令了,這時候可以使用下面的方式進行登錄:

    127.0.0.1:6379> keys *

    1) "name"

    127.0.0.1:6379> exit

    [toto@localhost bin]$ redis-cli -a toto????加上一個-a,然后后面再加上密碼toto

    127.0.0.1:6379> keys *

    1) "name"

    127.0.0.1:6379>

    ??

  • 主從復制

  • Redis主從復制配置和使用都非常簡單。通過主從復制可以允許多個slave server擁有和master server相同的數(shù)據(jù)庫副本。

    ?

    A Redis主從復制特點:

  • Master可以擁有多個slave

  • 多個slave可以連接同一個master外,還可以連接到其它slave

  • 主從復制不會阻塞master,在同步數(shù)據(jù)時,master可以繼續(xù)處理client請求。

  • 提高系統(tǒng)的伸縮性。

  • B:Redis主從復制過程:

  • Slavemaster建立連接,發(fā)送sync同步命令。

  • Master會啟動一個后臺進程,將數(shù)據(jù)庫快照保存到文件中,同時master主進程會開始收集新的寫命令并緩存。

  • 后臺完成保存后,就將此文件發(fā)送給slave

  • Slave將此文件保存到硬盤上。

  • C:配置主從服務器:

    配置slave服務器很簡單,只需要在slave的配置文件中加入以下配置:

    slaveof 192.168.1.1 6379 #指定masterip和端口

    masterauth toto #這是主機的密碼

    實驗方法:

    關閉虛擬機中的此Linux,將其命名為Redis_master,然后通過克隆的方式克隆一個Linux,并將其命名為Redis_slave.

    注意克隆方式:右擊虛擬機->管理->克隆->最后一直點擊下一步。

    克隆后的效果是:

    其中masterip地址是192.168.6.26slaveip地址是192.168.6.25

    master主機ping slave主機,如果ping同了,則說明兩臺虛擬機是可以連通的。

    ?

    下面開始啟動master

    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

    進入master的客戶端

    [toto@localhost ~]$ /usr/local/redis/bin/redis-cli -a toto

    127.0.0.1:6379> keys *

    1) "name"

    127.0.0.1:6379> flushall

    OK

    127.0.0.1:6379> keys *

    (empty list or set)

    127.0.0.1:6379>

    ?

    配置從機,修改配置文件:vim /usr/local/redis/etc/redis.conf

    配置slaveof,配置的內(nèi)容是:slaveof 192.168.6.26 6379

    配置masterauth,配置的內(nèi)容是:masterauth toto

    啟動slave

    /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

    登錄slave

    /usr/local/redis/bin/redis-cli -a toto

    ?

    至此:主從復制配置完成

    ?我們怎樣判斷哪個是主哪個是從呢?我們只需要調用info就可以得到主從的信息,我們在從庫中執(zhí)行info


    參考資料:

    一、RedisReplication

    ?? ?
    這里首先需要說明的是,在Redis中配置Master-Slave模式真是太簡單了。相信在閱讀完這篇Blog之后你也可以輕松做到。這里我們還是先列出一些理論性的知識,后面給出實際操作的案例。
    ?? ?
    下面的列表清楚的解釋了Redis Replication的特點和優(yōu)勢。
    ?? ?1).
    同一個Master可以同步多個Slaves
    ?? ?2). Slave
    同樣可以接受其它Slaves的連接和同步請求,這樣可以有效的分載Master的同步壓力。因此我們可以將RedisReplication架構視為圖結構。
    ?? ?3). Master Server
    是以非阻塞的方式為Slaves提供服務。所以在Master-Slave同步期間,客戶端仍然可以提交查詢或修改請求。
    ?? ?4). Slave Server
    同樣是以非阻塞的方式完成數(shù)據(jù)同步。在同步期間,如果有客戶端提交查詢請求,Redis則返回同步之前的數(shù)據(jù)。
    ?? ?5).
    為了分載Master的讀操作壓力,Slave服務器可以為客戶端提供只讀操作的服務,寫服務仍然必須由Master來完成。即便如此,系統(tǒng)的伸縮性還是得到了很大的提高。
    ?? ?6). Master
    可以將數(shù)據(jù)保存操作交給Slaves完成,從而避免了在Master中要有獨立的進程來完成此操作。
    ?? ?
    二、Replication的工作原理:

    ?? ?
    Slave啟動并連接到Master之后,它將主動發(fā)送一個SYNC命令。此后Master將啟動后臺存盤進程,同時收集所有接收到的用于修改數(shù)據(jù)集的命令,在后臺進程執(zhí)行完畢后,Master將傳送整個數(shù)據(jù)庫文件到Slave,以完成一次完全同步。而Slave服務器在接收到數(shù)據(jù)庫文件數(shù)據(jù)之后將其存盤并加載到內(nèi)存中。此后,Master繼續(xù)將所有已經(jīng)收集到的修改命令,和新的修改命令依次傳送給SlavesSlave將在本次執(zhí)行這些數(shù)據(jù)修改命令,從而達到最終的數(shù)據(jù)同步。
    ?? ?
    如果MasterSlave之間的鏈接出現(xiàn)斷連現(xiàn)象,Slave可以自動重連Master,但是在連接成功之后,一次完全同步將被自動執(zhí)行。
    ?? ?
    三、如何配置Replication

    ?? ?
    見如下步驟:
    ?? ?1).
    同時啟動兩個Redis服務器,可以考慮在同一臺機器上啟動兩個Redis服務器,分別監(jiān)聽不同的端口,如63796380
    ?? ?2).
    Slave服務器上執(zhí)行一下命令:
    ?? ?/> redis-cli -p 6380?? #
    這里我們假設Slave的端口號是6380
    ?? ?redis 127.0.0.1:6380> slaveof 127.0.0.1 6379#
    我們假設MasterSlave在同一臺主機,Master的端口為6379
    ?? ?OK
    ?? ?
    上面的方式只是保證了在執(zhí)行slaveof命令之后,redis_6380成為了redis_6379slave,一旦服務(redis_6380)重新啟動之后,他們之間的復制關系將終止。
    ?? ?
    如果希望長期保證這兩個服務器之間的Replication關系,可以在redis_6380的配置文件中做如下修改:
    ?? ?/> cd /etc/redis?#
    切換Redis服務器配置文件所在的目錄。
    ?? ?/> ls
    ?? ?6379.conf? 6380.conf
    ?? ?/> vi 6380.conf
    ?? ?

    ?? ?# slaveof <masterip> <masterport>
    ?? ?
    改為
    ?? ?slaveof 127.0.0.1 6379
    ?? ?
    保存退出。
    ?? ?
    這樣就可以保證Redis_6380服務程序在每次啟動后都會主動建立與Redis_6379Replication連接了。
    ?? ?
    四、應用示例:

    ?? ?
    這里我們假設Master-Slave已經(jīng)建立。
    ?? ?#
    啟動master服務器。
    ?? ?[root@Stephen-PC redis]# redis-cli -p 6379
    ?? ?redis 127.0.0.1:6379>
    ?? ?#
    情況Master當前數(shù)據(jù)庫中的所有Keys
    ?? ?redis 127.0.0.1:6379> flushdb
    ?? ?OK
    ?? ?#
    Master中創(chuàng)建新的Keys作為測試數(shù)據(jù)。
    ?? ?redis 127.0.0.1:6379> set mykey hello
    ?? ?OK
    ?? ?redis 127.0.0.1:6379> set mykey2 world
    ?? ?OK
    ?? ?#
    查看Master中存在哪些Keys
    ?? ?redis 127.0.0.1:6379> keys *
    ?? ?1) "mykey"
    ?? ?2) "mykey2"
    ?? ?
    ?? ?#
    啟動slave服務器。
    ?? ?[root@Stephen-PC redis]# redis-cli -p 6380
    ?? ?#
    查看Slave中的Keys是否和Master中一致,從結果看,他們是相等的。
    ?? ?redis 127.0.0.1:6380> keys *
    ?? ?1) "mykey"
    ?? ?2) "mykey2"
    ?? ?
    ?? ?#
    Master中刪除其中一個測試Key,并查看刪除后的結果。
    ?? ?redis 127.0.0.1:6379> del mykey2
    ?? ?(integer) 1
    ?? ?redis 127.0.0.1:6379> keys *
    ?? ?1) "mykey"
    ?? ?
    ?? ?#
    Slave中查看是否mykey2也已經(jīng)在Slave中被刪除。
    ?? ?redis 127.0.0.1:6380> keys *
    ?? ?1) "mykey"

    ?

    

    總結

    以上是生活随笔為你收集整理的06_NoSQL数据库之Redis数据库:Redis的高级应用之登录授权和主从复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。