自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Redis高級(jí)實(shí)用特性:安全性與主從復(fù)制

數(shù)據(jù)庫(kù) 其他數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)運(yùn)維 Redis
Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。本文將介紹Redis的高級(jí)實(shí)用特性。

 安全性

設(shè)置客戶端連接后進(jìn)行任何其他指定前需要使用的密碼。

警告:因?yàn)閞edis速度相當(dāng)快,所以在一臺(tái)比較好的服務(wù)器下,一個(gè)外部的用戶可以在一秒鐘進(jìn)行150K次的密碼嘗試,這意味著你需要指定非常非常強(qiáng)大的密碼來(lái)防止暴力破解。

  1.   # requirepass foobared
  2.   requirepass beijing

下面我們做一個(gè)實(shí)驗(yàn),說(shuō)明redis的安全性是如何實(shí)現(xiàn)的。

我們?cè)O(shè)置了連接的口令是beijing

那么們啟動(dòng)一個(gè)客戶端試一下:

  1.   [root@localhost redis-2.2.12]# src/redis-cli  
  2.   redis 127.0.0.1:6379> keys *  
  3.   (error) ERR operation not permitted  
  4.   redis 127.0.0.1:6379> 

  說(shuō)明權(quán)限太小,我們可以當(dāng)前的這個(gè)窗口中設(shè)置口令

  1.   redis 127.0.0.1:6379> auth beijing  
  2.   OK  
  3.   redis 127.0.0.1:6379> keys *  
  4.   1) "name"  
  5.   redis 127.0.0.1:6379> 

  我們還可以在連接到服務(wù)器期間就指定一個(gè)口令,如下:

  1.   [root@localhost redis-2.2.12]# src/redis-cli -a beijing  
  2.   redis 127.0.0.1:6379> keys *  
  3.   1) "name"  
  4.  redis 127.0.0.1:6379> 

  可以看到我們?cè)谶B接的時(shí)候就可以指定一個(gè)口令。

主從復(fù)制

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

1、redis主從復(fù)制特點(diǎn):

(1)、master可以擁有多個(gè)slave

(2)、多個(gè)slave可以連接同一個(gè)master外,還可以連接到其他slave

(3)、主從復(fù)制不會(huì)阻塞master,在同步數(shù)據(jù)時(shí),master可以繼續(xù)處理client請(qǐng)求

(4)、提高系統(tǒng)的伸縮性

2、redis主從復(fù)制過(guò)程:

當(dāng)配置好slave后,slave與master建立連接,然后發(fā)送sync命令。無(wú)論是第一次連接還是重新連接,master都會(huì)啟動(dòng)一個(gè)后臺(tái)進(jìn)程,將數(shù)據(jù)庫(kù)快照保存到文件中,同時(shí)master主進(jìn)程會(huì)開(kāi)始收集新的寫(xiě)命令并緩存。后臺(tái)進(jìn)程完成寫(xiě)文件后,master就發(fā)送文件給slave,slave將文件保存到硬盤(pán)上,再加載到內(nèi)存中,接著master就會(huì)把緩存的命令轉(zhuǎn)發(fā)給slave,后續(xù)master將收到的寫(xiě)命令發(fā)送給slave。如果master同時(shí)收到多個(gè)slave發(fā)來(lái)的同步連接命令,master只會(huì)啟動(dòng)一個(gè)進(jìn)程來(lái)寫(xiě)數(shù)據(jù)庫(kù)鏡像,然后發(fā)送給所有的slave。

3、如何配置

配置slave服務(wù)器很簡(jiǎn)單,只需要在slave的配置文件中加入如下配置

  1. slaveof 192.168.1.1 6379 #指定master的ip和端口 

  下面我們做一個(gè)實(shí)驗(yàn)來(lái)演示如何搭建一個(gè)主從環(huán)境:

  1. # slaveof <masterip> <masterport> 
  2. slaveof localhost 6379 

  我們?cè)谝慌_(tái)機(jī)器上啟動(dòng)主庫(kù)(端口6379),從庫(kù)(端口6378)

啟動(dòng)后主庫(kù)控制臺(tái)日志如下:

  1. [root@localhost redis-2.2.12]# src/redis-server redis.conf   
  2. [7064] 09 Aug 20:13:12 * Server started, Redis version 2.2.12  
  3. [7064] 09 Aug 20:13:12 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.  
  4. [7064] 09 Aug 20:13:12 * The server is now ready to accept connections on port 6379  
  5. [7064] 09 Aug 20:13:13 - 0 clients connected (0 slaves), 539512 bytes in use  
  6. [7064] 09 Aug 20:13:18 - 0 clients connected (0 slaves), 539512 bytes in use  
  7. [7064] 09 Aug 20:13:20 - Accepted 127.0.0.1:37789  
  8. [7064] 09 Aug 20:13:20 * Slave ask for synchronization  
  9. [7064] 09 Aug 20:13:20 * Starting BGSAVE for SYNC  
  10. [7064] 09 Aug 20:13:20 * Background saving started by pid 7067  
  11. [7067] 09 Aug 20:13:20 * DB saved on disk  
  12. [7064] 09 Aug 20:13:20 * Background saving terminated with success  
  13. [7064] 09 Aug 20:13:20 * Synchronization with slave succeeded  
  14. [7064] 09 Aug 20:13:23 - 0 clients connected (1 slaves), 547380 bytes in use 

  啟動(dòng)后從庫(kù)控制臺(tái)日志如下:

  1. [root@localhost redis-2.2.12]# src/redis-server redis.slave   
  2. [7066] 09 Aug 20:13:20 * Server started, Redis version 2.2.12  
  3. [7066] 09 Aug 20:13:20 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.  
  4. [7066] 09 Aug 20:13:20 * The server is now ready to accept connections on port 6378  
  5. [7066] 09 Aug 20:13:20 - 0 clients connected (0 slaves), 539548 bytes in use  
  6. [7066] 09 Aug 20:13:20 * Connecting to MASTER...  
  7. [7066] 09 Aug 20:13:20 * MASTER <-> SLAVE sync started: SYNC sent  
  8. [7066] 09 Aug 20:13:20 * MASTER <-> SLAVE sync: receiving 10 bytes from master  
  9. [7066] 09 Aug 20:13:20 * MASTER <-> SLAVE sync: Loading DB in memory  
  10. [7066] 09 Aug 20:13:20 * MASTER <-> SLAVE sync: Finished with success  
  11. [7068] 09 Aug 20:13:20 * SYNC append only file rewrite performed  
  12. [7066] 09 Aug 20:13:20 * Background append only file rewriting started by pid 7068  
  13. [7066] 09 Aug 20:13:21 * Background append only file rewriting terminated with success  
  14. [7066] 09 Aug 20:13:21 * Parent diff flushed into the new append log file with success (0 bytes)  
  15. [7066] 09 Aug 20:13:21 * Append only file successfully rewritten.  
  16. [7066] 09 Aug 20:13:21 * The new append only file was selected for future appends.  
  17. [7066] 09 Aug 20:13:25 - 1 clients connected (0 slaves), 547396 bytes in use 

  我們?cè)谥鲙?kù)上設(shè)置一對(duì)鍵值對(duì)

  1. redis 127.0.0.1:6379> set name HongWan  
  2. OK  
  3. redis 127.0.0.1:6379> 

  在從庫(kù)上取一下這個(gè)鍵

  1. redis 127.0.0.1:6378> get name  
  2. "HongWan"  
  3. redis 127.0.0.1:6378> 

  說(shuō)明主從是同步正常的.

  那么我們?nèi)绾闻袛嗄膫€(gè)是主哪個(gè)是從呢?我們只需調(diào)用info這個(gè)命令就可以得到主從的信息了,我們?cè)趶膸?kù)上執(zhí)行info命令

  1. redis 127.0.0.1:6378> info  
  2. .  
  3. .  
  4. .  
  5. role:slave  
  6. master_host:localhost  
  7. master_port:6379  
  8. master_link_status:up  
  9. master_last_io_seconds_ago:10  
  10. master_sync_in_progress:0  
  11. db0:keys=1,expires=0 
  12. redis 127.0.0.1:6378> 

  里面有一個(gè)角色標(biāo)識(shí),來(lái)判斷是主庫(kù)還是從庫(kù),對(duì)于本例是一個(gè)從庫(kù),同時(shí)還有一個(gè)master_link_status用于標(biāo)明主從是否異步,如果此值=up,說(shuō)明同步正常;如果此值=down,說(shuō)明同步異步;

  db0:keys=1,expires=0, 用于說(shuō)明數(shù)據(jù)庫(kù)有幾個(gè)key,以及過(guò)期key的數(shù)量。

【編輯推薦】

  1. Redis2.6將釋出 新功能一覽
  2. 使用Redis的五個(gè)注意事項(xiàng)
  3. Redis高可用性之Failover過(guò)渡方案
  4. Redis能干啥?細(xì)看11種Web應(yīng)用場(chǎng)景
  5. 主流NoSQL數(shù)據(jù)庫(kù)之Redis全面評(píng)測(cè)
責(zé)任編輯:彭凡 來(lái)源: ITPUB
相關(guān)推薦

2023-09-24 14:32:15

2023-03-15 08:30:37

2023-03-19 22:38:12

邏輯復(fù)制PostgreSQL

2023-12-25 08:02:09

2011-05-31 18:41:45

復(fù)印機(jī)技巧

2023-03-19 11:53:27

2023-07-03 08:57:45

Master服務(wù)TCP

2017-06-23 22:00:13

MySqlsslcentos

2024-03-01 18:33:59

MySQL節(jié)點(diǎn)數(shù)據(jù)

2021-06-08 07:48:27

MySQL主從配置

2023-04-06 13:15:48

MySQL復(fù)制原理應(yīng)用實(shí)踐

2024-07-04 08:00:24

2025-02-10 10:55:16

2018-04-08 15:20:15

數(shù)據(jù)庫(kù)MySQL主從復(fù)制

2021-01-12 08:03:19

Redis數(shù)據(jù)系統(tǒng)

2025-03-19 10:00:56

2018-07-06 09:58:38

Redis高可用主從復(fù)制

2021-05-20 06:49:45

MongoDB高可用數(shù)據(jù)庫(kù)

2025-01-15 15:47:36

2022-12-20 08:46:41

MySQL主從復(fù)制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)