redis 學(xué)習(xí)


課程大綱

1、在虛擬機(jī)中安裝CentOS

2、在每個(gè)CentOS中都安裝Java和Perl

3、在4個(gè)虛擬機(jī)中安裝CentOS集群

4、配置4臺(tái)CentOS為ssh免密碼互相通信

從零開始,純手工,一步一步搭建出一個(gè)4個(gè)節(jié)點(diǎn)的CentOS集群

為我們后面的課程做準(zhǔn)備,后面會(huì)講解大型的分布式的redis集群架構(gòu),一步一步純手工搭建redis集群,集群部署,主從架構(gòu),分布式集群架構(gòu)

我們后面的課程,會(huì)講解一些實(shí)時(shí)計(jì)算技術(shù)的應(yīng)用,包括storm,講解一下storm的基礎(chǔ)知識(shí),對(duì)于java工程師來說,會(huì)用就可以了,用一些storm最基本的分布式實(shí)時(shí)計(jì)算的feature就ok了,搭建一個(gè)storm的集群

部署我們整套的系統(tǒng),nginx,tomcat+java web應(yīng)用,mysql

盡量以真實(shí)的網(wǎng)絡(luò)拓?fù)涞沫h(huán)境,去給大家演示一下整套系統(tǒng)的部署,不要所有東西,redis集群+storm集群+nginx+tomcat+mysql,全部放在一個(gè)節(jié)點(diǎn)上玩兒,也可以去試一試,但是作為課程來說,效果不是太理想

redis集群,獨(dú)立的一套機(jī)器

storm集群,獨(dú)立的一套機(jī)器

nginx,獨(dú)立部署

tomcat + java web應(yīng)用,獨(dú)立部署

mysql,獨(dú)立部署

十幾個(gè)機(jī)器,去部署整套系統(tǒng),我在自己的筆記本電腦上來講課的,這么玩兒撐不住的

i5,12G

4臺(tái)虛擬機(jī),每臺(tái)虛擬機(jī)是1G的內(nèi)存,電腦基本還能撐住

電腦本身就6個(gè)G內(nèi)存的話,學(xué)習(xí)這種大型的系統(tǒng)架構(gòu)的課程,是有點(diǎn)吃力,給大家建議,幾個(gè)G的內(nèi)存條,也就幾百塊錢,給自己最好加個(gè)內(nèi)存條,至少到8G以上

16G湊合

純手工,從零開始

很多視頻課程,里面講師都是現(xiàn)成的虛擬機(jī),自己都裝好了,包括各種必要的軟件

講課的時(shí)候直接基于自己的虛擬機(jī)就開始講解了

很多同學(xué)就會(huì)發(fā)現(xiàn),想要做到跟講師一樣的環(huán)境都很難,自己可能照著樣子裝了個(gè)環(huán)境,但是發(fā)現(xiàn),各種問題,各種報(bào)錯(cuò),環(huán)境起不來

學(xué)習(xí)課程的過程很艱難

學(xué)視頻課程,肯定是要跟著視頻的所有的東西自己去做一做,練一練,結(jié)果你卻因?yàn)榄h(huán)境問題,做不了,連不了,那就太慘了

從centos的鏡像文件,到所有的需要使用的軟件,全都給你,在自己電腦上,下載一個(gè)虛擬機(jī)管理軟件,virtual box,就可以跟著玩兒了

如果你一步一步跟著視頻做,搭建起整個(gè)環(huán)境,應(yīng)該問題不大

環(huán)境問題,給大家弄成傻瓜式的

------------------------------------------------------------------------------------------

1、在虛擬機(jī)中安裝CentOS

啟動(dòng)一個(gè)virtual box虛擬機(jī)管理軟件(vmware,我早些年,發(fā)現(xiàn)不太穩(wěn)定,主要是當(dāng)時(shí)搭建一個(gè)hadoop大數(shù)據(jù)的集群,發(fā)現(xiàn)每次休眠以后再重啟,集群就掛掉了)

virtual box,發(fā)現(xiàn)很穩(wěn)定,集群從來不會(huì)隨便亂掛,所以就一直用virtual box了

(1)使用課程提供的CentOS 6.5鏡像即可,CentOS-6.5-i386-minimal.iso。

(2)創(chuàng)建虛擬機(jī):打開Virtual Box,點(diǎn)擊“新建”按鈕,點(diǎn)擊“下一步”,輸入虛擬機(jī)名稱為eshop-cache01,選擇操作系統(tǒng)為Linux,選擇版本為Red Hat,分配1024MB內(nèi)存,后面的選項(xiàng)全部用默認(rèn),在Virtual Disk File location and size中,一定要自己選擇一個(gè)目錄來存放虛擬機(jī)文件,最后點(diǎn)擊“create”按鈕,開始創(chuàng)建虛擬機(jī)。

(3)設(shè)置虛擬機(jī)網(wǎng)卡:選擇創(chuàng)建好的虛擬機(jī),點(diǎn)擊“設(shè)置”按鈕,在網(wǎng)絡(luò)一欄中,連接方式中,選擇“Bridged Adapter”。

(4)安裝虛擬機(jī)中的CentOS 6.5操作系統(tǒng):選擇創(chuàng)建好的虛擬機(jī),點(diǎn)擊“開始”按鈕,選擇安裝介質(zhì)(即本地的CentOS 6.5鏡像文件),選擇第一項(xiàng)開始安裝-Skip-歡迎界面Next-選擇默認(rèn)語言-Baisc Storage Devices-Yes, discard any data-主機(jī)名:spark2upgrade01-選擇時(shí)區(qū)-設(shè)置初始密碼為hadoop-Replace Existing Linux System-Write changes to disk-CentOS 6.5自己開始安裝。

(5)安裝完以后,CentOS會(huì)提醒你要重啟一下,就是reboot,你就reboot就可以了。

(6)配置網(wǎng)絡(luò)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=dhcp

service network restart

ifconfig

BOOTPROTO=static

IPADDR=192.168.0.X

NETMASK=255.255.255.0

GATEWAY=192.168.0.1

service network restart

(7)配置hosts

vi /etc/hosts

配置本機(jī)的hostname到ip地址的映射

(8)配置SecureCRT

此時(shí)就可以使用SecureCRT從本機(jī)連接到虛擬機(jī)進(jìn)行操作了

一般來說,虛擬機(jī)管理軟件,virtual box,可以用來創(chuàng)建和管理虛擬機(jī),但是一般不會(huì)直接在virtualbox里面去操作,因?yàn)楸容^麻煩,沒有辦法復(fù)制粘貼

比如后面我們要安裝很多其他的一些東西,perl,java,redis,storm,復(fù)制一些命令直接去執(zhí)行

SecureCRT,在windows宿主機(jī)中,去連接virtual box中的虛擬機(jī)

收費(fèi)的,我這里有完美破解版,跟著課程一起給大家,破解

(9)關(guān)閉防火墻

service iptables stop

service ip6tables stop

chkconfig iptables off

chkconfig ip6tables off

vi /etc/selinux/config

SELINUX=disabled

關(guān)閉windows的防火墻

后面要搭建集群,有的大數(shù)據(jù)技術(shù)的集群之間,在本地你給了防火墻的話,可能會(huì)沒有辦法互相連接,會(huì)導(dǎo)致搭建失敗

(10)配置yum

yum clean all

yum makecache

yum install wget

------------------------------------------------------------------------------------------

2、在每個(gè)CentOS中都安裝Java和Perl

WinSCP,就是在windows宿主機(jī)和linux虛擬機(jī)之間互相傳遞文件的一個(gè)工具

(1)安裝JDK

1、將jdk-7u60-linux-i586.rpm通過WinSCP上傳到虛擬機(jī)中

2、安裝JDK:rpm -ivh jdk-7u65-linux-i586.rpm

3、配置jdk相關(guān)的環(huán)境變量

vi .bashrc

export JAVA_HOME=/usr/java/latest

export PATH=$PATH:$JAVA_HOME/bin

source .bashrc

4、測試jdk安裝是否成功:java -version

(2)安裝Perl

很多講師,拿著自己之前花了很多時(shí)間調(diào)試好的虛擬機(jī)環(huán)境,去講課,這個(gè)很不負(fù)責(zé)任

yum install -y gcc

wget http://www.cpan.org/src/5.0/perl-5.16.1.tar.gz

tar -xzf perl-5.16.1.tar.gz

cd perl-5.16.1

./Configure -des -Dprefix=/usr/local/perl

make && make test && make install

perl -v

為什么要裝perl?我們整個(gè)大型電商網(wǎng)站的詳情頁系統(tǒng),復(fù)雜。java+nginx+lua,需要perl。

perl,是一個(gè)基礎(chǔ)的編程語言的安裝,tomcat,跑java web應(yīng)用

------------------------------------------------------------------------------------------

3、在4個(gè)虛擬機(jī)中安裝CentOS集群

(1)按照上述步驟,再安裝三臺(tái)一模一樣環(huán)境的linux機(jī)器

(2)另外三臺(tái)機(jī)器的hostname分別設(shè)置為eshop-cache02,eshop-cache03,eshop-cache04

(3)安裝好之后,在每臺(tái)機(jī)器的hosts文件里面,配置好所有的機(jī)器的ip地址到hostname的映射關(guān)系

比如說,在eshop-cache01的hosts里面

192.168.31.187 eshop-cache01

192.168.31.xxx eshop-cache02

192.168.31.xxx eshop-cache03

192.168.31.xxx eshop-cache04

------------------------------------------------------------------------------------------

4、配置4臺(tái)CentOS為ssh免密碼互相通信

(1)首先在三臺(tái)機(jī)器上配置對(duì)本機(jī)的ssh免密碼登錄

ssh-keygen -t rsa

生成本機(jī)的公鑰,過程中不斷敲回車即可,ssh-keygen命令默認(rèn)會(huì)將公鑰放在/root/.ssh目錄下

cd /root/.ssh

cp id_rsa.pub authorized_keys

將公鑰復(fù)制為authorized_keys文件,此時(shí)使用ssh連接本機(jī)就不需要輸入密碼了

(2)接著配置三臺(tái)機(jī)器互相之間的ssh免密碼登錄

使用ssh-copy-id -i hostname命令將本機(jī)的公鑰拷貝到指定機(jī)器的authorized_keys文件中

java,在公司里做項(xiàng)目,有幾個(gè)人是自己去維護(hù)linux集群的?。?????

幾乎沒有,很少很少,類似這一講要做的事情,其實(shí)都是SRE,運(yùn)維的同學(xué),去做的

但是對(duì)于課程來說,我們只能自己一步一步做,才有環(huán)境去學(xué)習(xí)?。。?!

------------------------------------------------------------------------------------------

基于虛擬機(jī)的linux集群環(huán)境,都準(zhǔn)備好了,手上有4臺(tái)機(jī)器,后面玩兒各種redis、kafka、storm、tomcat、nginx,都有機(jī)器了



課程大綱

1、安裝單機(jī)版redis

2、redis的生產(chǎn)環(huán)境啟動(dòng)方案

3、redis cli的使用

------------------------------------------------------------------------

1、安裝單機(jī)版redis

大家可以自己去官網(wǎng)下載,當(dāng)然也可以用課程提供的壓縮包

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

tar -xzvf tcl8.6.1-src.tar.gz

cd? /usr/local/tcl8.6.1/unix/

./configure?

make && make install

使用redis-3.2.8.tar.gz(截止2017年4月的最新穩(wěn)定版)

tar -zxvf redis-3.2.8.tar.gz

cd redis-3.2.8

make && make test && make install

------------------------------------------------------------------------

2、redis的生產(chǎn)環(huán)境啟動(dòng)方案

如果一般的學(xué)習(xí)課程,你就隨便用redis-server啟動(dòng)一下redis,做一些實(shí)驗(yàn),這樣的話,沒什么意義

要把redis作為一個(gè)系統(tǒng)的daemon進(jìn)程去運(yùn)行的,每次系統(tǒng)啟動(dòng),redis進(jìn)程一起啟動(dòng)

(1)redis utils目錄下,有個(gè)redis_init_script腳本

(2)將redis_init_script腳本拷貝到linux的/etc/init.d目錄中,將redis_init_script重命名為redis_6379,6379是我們希望這個(gè)redis實(shí)例監(jiān)聽的端口號(hào)

(3)修改redis_6379腳本的第6行的REDISPORT,設(shè)置為相同的端口號(hào)(默認(rèn)就是6379)

(4)創(chuàng)建兩個(gè)目錄:/etc/redis(存放redis的配置文件),/var/redis/6379(存放redis的持久化文件)

(5)修改redis配置文件(默認(rèn)在根目錄下,redis.conf),拷貝到/etc/redis目錄中,修改名稱為6379.conf

(6)修改redis.conf中的部分配置為生產(chǎn)環(huán)境

daemonize yes 讓redis以daemon進(jìn)程運(yùn)行

pidfile /var/run/redis_6379.pid 設(shè)置redis的pid文件位置

port 6379 設(shè)置redis的監(jiān)聽端口號(hào)

dir /var/redis/6379 設(shè)置持久化文件的存儲(chǔ)位置

(7)啟動(dòng)redis,執(zhí)行cd /etc/init.d, chmod 777 redis_6379,./redis_6379 start

(8)確認(rèn)redis進(jìn)程是否啟動(dòng),ps -ef | grep redis

(9)讓redis跟隨系統(tǒng)啟動(dòng)自動(dòng)啟動(dòng)

在redis_6379腳本中,最上面,加入兩行注釋

# chkconfig:? 2345 90 10

# description:? Redis is a persistent key-value database

chkconfig redis_6379 on

------------------------------------------------------------------------

3、redis cli的使用

redis-cli SHUTDOWN,連接本機(jī)的6379端口停止redis進(jìn)程

redis-cli -h 127.0.0.1 -p 6379 SHUTDOWN,制定要連接的ip和端口號(hào)

redis-cli PING,ping redis的端口,看是否正常

redis-cli,進(jìn)入交互式命令行

SET k1 v1

GET k1

redis的技術(shù),包括4塊

redis各種數(shù)據(jù)結(jié)構(gòu)和命令的使用,包括java api的使用

redis一些特殊的解決方案的使用,pub/sub消息系統(tǒng),分布式鎖,輸入的自動(dòng)完成,等等

redis日常的管理相關(guān)的命令

redis企業(yè)級(jí)的集群部署和架構(gòu)

我們這套課程,實(shí)際上是針對(duì)企業(yè)級(jí)的大型緩存架構(gòu),用得項(xiàng)目,真實(shí)的大型電商網(wǎng)站的詳情頁系統(tǒng)(緩存)

我們首先講解的第一塊,其實(shí)就是企業(yè)級(jí)的大型緩存架構(gòu)中的,redis集群架構(gòu)(海量數(shù)據(jù)、高并發(fā)、高可用),最最流行,最最常用的分布式緩存系統(tǒng)

后面我們做商品詳情頁系統(tǒng)的業(yè)務(wù)開發(fā)的時(shí)候,當(dāng)然也會(huì)去用redis的一些命令

redis基礎(chǔ)知識(shí):教程,書籍,視頻

redis持久化、主從架構(gòu)、復(fù)制原理、集群架構(gòu)、數(shù)據(jù)分布式存儲(chǔ)原理、哨兵原理、高可用架構(gòu)

網(wǎng)上一些redis的教程,持久化,集群,哨兵,也講了,都是泛泛而講,簡單帶你搭建一下

我會(huì)深入集群架構(gòu)的底層原理,哨兵的底層原理,用一線的經(jīng)驗(yàn),告訴你,redis的大規(guī)模的架構(gòu)師如何去支撐海量數(shù)據(jù)、高并發(fā)、高可用的


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 教你炒股票40:同級(jí)別分解的多重賦格 (2007-03-27 12:53:22) 轉(zhuǎn)載▼ 分類:時(shí)政經(jīng)濟(jì)(纏中說禪...
    4ccb34d29844閱讀 254評(píng)論 0 0
  • 幼稚的人總是爭辯是非對(duì)錯(cuò),成熟的人更多的是權(quán)衡得失利弊。
    Happy游世界閱讀 346評(píng)論 0 0
  • 第一印象是在一瞬間形成的。 1) 面部神態(tài):安詳、謙和、慈眉善目更容易贏得信任 2) 想清楚你想給對(duì)方留下什么...
    李子心誠閱讀 192評(píng)論 0 0
  • 《信念》 文/六悅 “不管是信神,還是自珍自重,人活在這個(gè)世界上總得有點(diǎn)信念才成。就我個(gè)人而言,雖是無神論...
    六悅茗閱讀 195評(píng)論 0 0
  • SDK4.0引入了ARC,到現(xiàn)在已經(jīng)一年了,開始發(fā)現(xiàn)有很多項(xiàng)目會(huì)混合使用這兩個(gè)方案。比如: 1.自己的舊項(xiàng)目沒有使...
    kindom_0129閱讀 422評(píng)論 0 0

友情鏈接更多精彩內(nèi)容