Redis集群實(shí)戰(zhàn)-創(chuàng)新互聯(lián)

          Redis基礎(chǔ)到集群實(shí)戰(zhàn)筆記

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比施秉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式施秉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋施秉地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。

持久化存儲(chǔ)

redis介紹

redis是基于key-value的持久化數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng),redis和memcached服務(wù)很想,但是redis支持的數(shù)據(jù)存儲(chǔ)類型

服務(wù)更豐富

memcached支持value

redis支持string(字符)list(鏈表)  set(集合)  push、pop

redis比memcached服務(wù)性能好,但是比相對(duì)性的關(guān)系數(shù)據(jù)庫(kù)(如mysql) 相對(duì)差

redis支持各種不同方式的排序,與memcached一樣,為了保存效率,數(shù)據(jù)都是緩存在內(nèi)存中提供服務(wù),但是redis會(huì)定時(shí)的將

數(shù)據(jù)存儲(chǔ)在磁盤當(dāng)中,而且redis支持master-slave(主從)同步,這很類似MYSQL

redis優(yōu)點(diǎn)

可以持久化存儲(chǔ)數(shù)據(jù)

性能很高:redis支持超過100k+秒的讀寫頻率。

豐富的數(shù)據(jù)類型:strings lists,hashes,Sets數(shù)據(jù)類型操作

redis支持主從復(fù)制

redis應(yīng)用場(chǎng)景

傳統(tǒng)的MYSQL+MEMCACHED架構(gòu)遇到的問題

MYSQL數(shù)據(jù)庫(kù)是適合進(jìn)行海量數(shù)據(jù)存儲(chǔ)的,加上通過Memcached熱點(diǎn)數(shù)據(jù)放在內(nèi)存cache中,隨著訪問量增長(zhǎng),就會(huì)出現(xiàn)

問題。

1需要不斷的對(duì)MYSQL拆庫(kù)拆表,Memcached也需要不斷地?cái)U(kuò)充,占據(jù)大量的運(yùn)維時(shí)間

2Memcached和MYSQL數(shù)據(jù)一致性問題

3Memcached數(shù)據(jù)庫(kù)命中率低或當(dāng)機(jī),導(dǎo)致大量的訪問直接穿透數(shù)據(jù)庫(kù),導(dǎo)致mysql無法支持訪問

4跨級(jí)方cache同步一致性問題

redis最佳應(yīng)用場(chǎng)景

1Redis最佳使用場(chǎng)景全部數(shù)據(jù)是in-memory(內(nèi)存)

2Redis更多的場(chǎng)景作為Memcached替代

3當(dāng)需要除key/value之外的更多數(shù)據(jù)類型支持的時(shí)候,使用Redis更合適

4支持持久化

5需要負(fù)載均衡的場(chǎng)景(redis主從同步)

redis部署搭建

MASTER 192.168.2.1

SLAVE  192.168.2.4

MASTER:

[root@localhost ~]# ls

anaconda-ks.cfg  bbs  boke  install.log  install.log.syslog  mysql-5.5.32-linux2.6-x86_64.tar.gz  redis-3.0.2.tar.gz  test.sh  www

[root@localhost ~]# tar zxf redis-3.0.2.tar.gz

[root@localhost ~]# cd redis-3.0.2

[root@localhost redis-3.0.2]# make  MALLOC=jemalloc

[root@localhost redis-3.0.2]# make PREFIX=/application/redis install  指定安裝路徑

SLAVE

[root@localhost ~]# ls

anaconda-ks.cfg  bbs  boke  install.log  install.log.syslog  mysql-5.5.32-linux2.6-x86_64.tar.gz  redis-3.0.2.tar.gz  test.sh  www

[root@localhost ~]# tar zxf redis-3.0.2.tar.gz

[root@localhost ~]# cd redis-3.0.2

[root@localhost redis-3.0.2]# make  MALLOC=jemalloc

[root@localhost redis-3.0.2]# make PREFIX=/application/redis install  指定安裝路徑

裝完后bin有5個(gè)命令

[root@localhost bin]# ls

redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-sentinel  redis-server

redis-benchmark redis性能測(cè)試工具

redis-check-aof 更新日志檢查

redis-check-dump

redis-cli Redis命令操作工具

redis-sentinel 用于本地?cái)?shù)據(jù)庫(kù)檢查

redis-server Redis服務(wù)的啟動(dòng)程序

要想啟動(dòng)Redis要做環(huán)境變量

[root@localhost redis]# export PATH=/application/redis/bin/:$PATH

[root@localhost redis]# which  redis-server

/application/redis/bin/redis-server

永久生效修改文件

[root@localhost redis]# vim /etc/profile

export PATH=/application/redis/bin/:$PATH

[root@localhost redis]# . /etc/profile

redis配置

[root@localhost redis-3.0.2]# mkdir /application/redis/conf

[root@localhost redis-3.0.2]# cp redis.conf  /application/redis/conf/

啟動(dòng)Redis

[root@localhost redis-3.0.2]# redis-server  /application/redis/conf/redis.conf

5522:M 18 Feb 05:02:08.448 * Increased maximum number of open files to 10032 (it was originally set to 1024).

                _._

           _.-``__ ''-._

      _.-``    `.  `_.  ''-._           Redis 3.0.2 (00000000/0) 64 bit

  .-`` .-```.  ```\/    _.,_ ''-._

 (    '      ,       .-`  | `,    )     Running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379

 |    `-._   `._    /     _.-'    |     PID: 5522

  `-._    `-._  `-./  _.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |           http://redis.io

  `-._    `-._`-.__.-'_.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |

  `-._    `-._`-.__.-'_.-'    _.-'

      `-._    `-.__.-'    _.-'

          `-._        _.-'

              `-.__.-'

5522:M 18 Feb 05:02:08.463 # Server started, Redis version 3.0.2

5522:M 18 Feb 05:02:08.464 # 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.

5522:M 18 Feb 05:02:08.470 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

5522:M 18 Feb 05:02:08.470 * The server is now ready to accept connections on port 6379

vm.overcommit_memory = 1提示這個(gè)錯(cuò)誤

解決

[root@localhost redis-3.0.2]# sysctl  vm.overcommit_memory=1

vm.overcommit_memory = 1

[root@localhost redis-3.0.2]# redis-server  /application/redis/conf/redis.conf

5560:M 18 Feb 05:05:23.085 * Increased maximum number of open files to 10032 (it was originally set to 1024).

                _._

           _.-``__ ''-._

      _.-``    `.  `_.  ''-._           Redis 3.0.2 (00000000/0) 64 bit

  .-`` .-```.  ```\/    _.,_ ''-._

 (    '      ,       .-`  | `,    )     Running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379

 |    `-._   `._    /     _.-'    |     PID: 5560

  `-._    `-._  `-./  _.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |           http://redis.io

  `-._    `-._`-.__.-'_.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |

  `-._    `-._`-.__.-'_.-'    _.-'

      `-._    `-.__.-'    _.-'

          `-._        _.-'

              `-.__.-'

5560:M 18 Feb 05:05:23.087 # Server started, Redis version 3.0.2

5560:M 18 Feb 05:05:23.088 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

5560:M 18 Feb 05:05:23.088 * DB loaded from disk: 0.001 seconds

5560:M 18 Feb 05:05:23.088 * The server is now ready to accept connections on port 6379

成功!

測(cè)試redis

[root@localhost ~]# redis-cli

127.0.0.1:6379>

創(chuàng)建庫(kù)查看庫(kù)

127.0.0.1:6379> set  no002 xiaohu

OK

127.0.0.1:6379> get no002

"xiaohu"

不在命令行創(chuàng)建庫(kù)

[root@localhost ~]# redis-cli  -h 192.168.2.1 -p 6379 set no001 qi

OK

[root@localhost ~]# redis-cli  -h 192.168.2.1 -p 6379 get no001

"qi"

刪除數(shù)據(jù)庫(kù)

[root@localhost ~]# redis-cli   del no001

(integer) 1

[root@localhost ~]# redis-cli   get  no001

(nil)

redis類型

字符串類型

列表類型 列表是數(shù)組  對(duì)應(yīng)

[root@localhost ~]# redis-cli  rpush messages "hello"

(integer) 1

[root@localhost ~]# redis-cli  rpush messages "hell"

(integer) 2

顯示

[root@localhost ~]# redis-cli  lrange messages 0 2

1) "hello"

2) "hell"

redis集合  這種將3個(gè)值集合在一個(gè)變量值上  對(duì)應(yīng)標(biāo)簽功能

127.0.0.1:6379> sadd myset a

(integer) 1

127.0.0.1:6379> sadd myset b

(integer) 1

127.0.0.1:6379> sadd myset c

(integer) 1

127.0.0.1:6379> smembers myset

1) "c"

2) "b"

3) "a"

redis 主從同步

MASTER 192.168.2.1

SLAVE  192.168.2.4

編輯slave的redis.conf

vim /application/redis/conf/redis.conf

在slaveof下面添加:

slaveof  192.168.2.1  6379 主庫(kù)地址和端口號(hào)

slave查看

[root@localhost redis-3.0.2]# redis-server  /application/redis/conf/redis.conf

6631:S 24 Mar 06:21:26.599 * Increased maximum number of open files to 10032 (it was originally set to 1024).

                _._

           _.-``__ ''-._

      _.-``    `.  `_.  ''-._           Redis 3.0.2 (00000000/0) 64 bit

  .-`` .-```.  ```\/    _.,_ ''-._

 (    '      ,       .-`  | `,    )     Running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379

 |    `-._   `._    /     _.-'    |     PID: 6631

  `-._    `-._  `-./  _.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |           http://redis.io

  `-._    `-._`-.__.-'_.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |

  `-._    `-._`-.__.-'_.-'    _.-'

      `-._    `-.__.-'    _.-'

          `-._        _.-'

              `-.__.-'

6631:S 24 Mar 06:21:26.611 # Server started, Redis version 3.0.2

6631:S 24 Mar 06:21:26.613 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

6631:S 24 Mar 06:21:26.613 * DB loaded from disk: 0.000 seconds

6631:S 24 Mar 06:21:26.613 * The server is now ready to accept connections on port 6379

6631:S 24 Mar 06:21:27.602 * Connecting to MASTER 192.168.2.1:6379

6631:S 24 Mar 06:21:27.602 * MASTER <-> SLAVE sync started  已經(jīng)成功

6631:S 24 Mar 06:21:27.603 * Non blocking connect for SYNC fired the event.

6631:S 24 Mar 06:21:27.604 * Master replied to PING, replication can continue...

6631:S 24 Mar 06:21:27.606 * Partial resynchronization not possible (no cached master)

6631:S 24 Mar 06:21:27.611 * Full resync from master: 7a09e0f69c3888561658ec8a480d250d219c2444:1

6631:S 24 Mar 06:21:27.671 * MASTER <-> SLAVE sync: receiving 83 bytes from master

6631:S 24 Mar 06:21:27.671 * MASTER <-> SLAVE sync: Flushing old data

6631:S 24 Mar 06:21:27.671 * MASTER <-> SLAVE sync: Loading DB in memory

6631:S 24 Mar 06:21:27.672 * MASTER <-> SLAVE sync: Finished with success

MASTER查看

[root@localhost ~]# redis-server  /application/redis/conf/redis.conf

2178:M 19 Feb 03:22:56.204 * Increased maximum number of open files to 10032 (it was originally set to 1024).

                _._

           _.-``__ ''-._

      _.-``    `.  `_.  ''-._           Redis 3.0.2 (00000000/0) 64 bit

  .-`` .-```.  ```\/    _.,_ ''-._

 (    '      ,       .-`  | `,    )     Running in standalone mode

 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379

 |    `-._   `._    /     _.-'    |     PID: 2178

  `-._    `-._  `-./  _.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |           http://redis.io

  `-._    `-._`-.__.-'_.-'    _.-'

 |`-._`-._    `-.__.-'    _.-'_.-'|

 |    `-._`-._        _.-'_.-'    |

  `-._    `-._`-.__.-'_.-'    _.-'

      `-._    `-.__.-'    _.-'

          `-._        _.-'

              `-.__.-'

2178:M 19 Feb 03:22:56.224 # Server started, Redis version 3.0.2

2178:M 19 Feb 03:22:56.224 # 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.

2178:M 19 Feb 03:22:56.224 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.

2178:M 19 Feb 03:22:56.224 * DB loaded from disk: 0.000 seconds

2178:M 19 Feb 03:22:56.224 * The server is now ready to accept connections on port 6379

2178:M 19 Feb 03:37:57.011 * 1 changes in 900 seconds. Saving...

2178:M 19 Feb 03:37:57.014 * Background saving started by pid 2374

2374:C 19 Feb 03:37:57.046 * DB saved on disk

2374:C 19 Feb 03:37:57.046 * RDB: 6 MB of memory used by copy-on-write

2178:M 19 Feb 03:37:57.120 * Background saving terminated with success

2178:M 19 Feb 03:52:58.020 * 1 changes in 900 seconds. Saving...

2178:M 19 Feb 03:52:58.031 * Background saving started by pid 2546

2546:C 19 Feb 03:52:58.049 * DB saved on disk

2546:C 19 Feb 03:52:58.049 * RDB: 6 MB of memory used by copy-on-write

2178:M 19 Feb 03:52:58.138 * Background saving terminated with success

2178:M 19 Feb 04:09:04.556 * Slave 192.168.2.4:6379 asks for synchronization

2178:M 19 Feb 04:09:04.556 * Full resync requested by slave 192.168.2.4:6379

2178:M 19 Feb 04:09:04.556 * Starting BGSAVE for SYNC with target: disk

2178:M 19 Feb 04:09:04.557 * Background saving started by pid 2773

2773:C 19 Feb 04:09:04.580 * DB saved on disk

2773:C 19 Feb 04:09:04.581 * RDB: 6 MB of memory used by copy-on-write 主庫(kù)也接受到了

2178:M 19 Feb 04:09:04.620 * Background saving terminated with success

2178:M 19 Feb 04:09:04.620 * Synchronization with slave 192.168.2.4:6379 succeeded

在從庫(kù)做個(gè)監(jiān)控,主庫(kù)寫數(shù)據(jù)驗(yàn)證

[root@localhost ~]# redis-cli  主庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)

127.0.0.1:6379> set t1 xiaohu01

OK

127.0.0.1:6379> get t1

"xiaohu01"

查看從庫(kù)同步

[root@localhost ~]# redis-cli  -h 192.168.2.4 get t1

"xiaohu01"

遠(yuǎn)程連接到從庫(kù)查看數(shù)據(jù)同步了

[root@localhost ~]# redis-cli  -h localhost -p 6379 monitor 從庫(kù)開啟監(jiān)控?cái)?shù)據(jù)庫(kù)寫入

OK

1458772016.182626 [0 192.168.2.1:6379] "PING"

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享文章:Redis集群實(shí)戰(zhàn)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://muchs.cn/article32/cocjsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)App開發(fā)、Google、面包屑導(dǎo)航網(wǎng)站排名、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站