01_Redis介紹和安裝運(yùn)行

redis主題

01_Redis介紹和安裝運(yùn)行
02_Jedis的介紹和使用
03_Redis數(shù)據(jù)類型和數(shù)據(jù)操作的命令
04_Redis集群

什么是redis

redis是一個(gè)nosql(not only sql不僅僅只有sql)數(shù)據(jù)庫.翻譯成中文叫做非關(guān)系型數(shù)據(jù)庫.

關(guān)系型數(shù)據(jù)庫與非關(guān)系型數(shù)據(jù)庫

  • 關(guān)系型數(shù)據(jù)庫:以二維表形式存儲(chǔ)數(shù)據(jù)
  • 非關(guān)系型數(shù)據(jù)庫: 以鍵值對(duì)形式存儲(chǔ)數(shù)據(jù)(key, value形式)

出處
redis是一家意大利的創(chuàng)業(yè)公司出的,然后后來這家公司被VMware贊助. redis底層用C語句編寫.

優(yōu)缺點(diǎn)
優(yōu)點(diǎn):存取速度快,官方稱讀取速度會(huì)達(dá)到30萬次每秒,寫速度在10萬次每秒左右,具體限制于硬件.
缺點(diǎn):對(duì)持久化支持不夠良好,
redis是將數(shù)據(jù)存放到內(nèi)存中,由于內(nèi)容存取速度快所以redis被廣泛應(yīng)用在互聯(lián)網(wǎng)項(xiàng)目中,
所以redis一般不作為數(shù)據(jù)的主數(shù)據(jù)庫存儲(chǔ),一般配合傳統(tǒng)的關(guān)系型數(shù)據(jù)庫使用.

redis應(yīng)用領(lǐng)域

  • 分布式緩存
  • 分布式session
  • 保存博客或者論壇的留言回復(fù)等.
  • 總之是用在數(shù)據(jù)量大,并發(fā)量高的情況下

怎么使用

  • redis主要就是使用命令來進(jìn)行操作,java端在代碼中可以使用Jedis來操作redis服務(wù)器
  • redis數(shù)據(jù)類型
  • 字符串String
  • 列表list redis中使用的是雙向循環(huán)鏈表來實(shí)現(xiàn)的list,在redis中更像棧
  • 散列Hash 一般應(yīng)用于將redis作為分布式緩存,存儲(chǔ)數(shù)據(jù)庫中的數(shù)據(jù)對(duì)象
  • 集合set set中數(shù)據(jù)是無序的并且不允許重復(fù)
  • 有序集合zset redis會(huì)根據(jù)分?jǐn)?shù)自動(dòng)排序,這里可以使用在學(xué)生成績排序,或者是手機(jī)應(yīng)用商店流行軟件排名等需求中

redis持久化方案:

  • rdb:可以設(shè)置間隔多長時(shí)間保存一次(Redis不用任何配置默認(rèn)的持久化方案)
  • 優(yōu)點(diǎn):讓redis的數(shù)據(jù)存取速度變快
  • 缺點(diǎn):服務(wù)器斷電時(shí)會(huì)丟失部分?jǐn)?shù)據(jù)(數(shù)據(jù)的完整性得不到保證)
  • aof:可以設(shè)置實(shí)時(shí)保存
  • 優(yōu)點(diǎn):持久化良好,能包裝數(shù)據(jù)的完整性
  • 缺點(diǎn):大大降低了redis系統(tǒng)的存取速度

主從復(fù)制:

這里使用了心跳檢測(cè)機(jī)制,主從復(fù)制必須使用rdb持久化方式
  從服務(wù)器一般是只讀的,保證主服務(wù)器和從服務(wù)器的數(shù)據(jù)一致性

安裝與運(yùn)行redis

安裝環(huán)境

  • 安裝redis需要先將官網(wǎng)下載的源碼進(jìn)行編譯,編譯依賴gcc環(huán)境,如果沒有g(shù)cc環(huán)境,需要安裝gcc:yum install gcc-c++

安裝

  • 本教程使用redis3.0版本。3.0版本主要增加了redis集群功能。
  • 從官網(wǎng)下載:所有版本地址,本例使用:3.2.8版本下載地址
  • 將redis-3.0.0.tar.gz拷貝到/usr/local
  • 解壓源碼:tar -zxvf redis-3.0.0.tar.gz
  • 進(jìn)入解壓后的目錄進(jìn)行編譯:
    cd /usr/local/redis-3.0.0
    make
  • 安裝到指定目錄,如/usr/local/redis
    cd /usr/local/redis-3.0.0
    make PREFIX=/usr/local/redis install
  • redis.conf
  • redis.conf是redis的配置文件,redis.conf在redis源碼目錄。
  • 注意修改port作為redis進(jìn)程的端口,port默認(rèn)6379。
  • 拷貝配置文件到安裝目錄下
    進(jìn)入源碼目錄,里面有一份配置文件 redis.conf,然后將其拷貝到安裝路徑下
    cd /usr/local/redis
    mkdir conf
    cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
安裝目錄/bin下的文件列表
  • 修改配置文件,設(shè)置為后端啟動(dòng):vi redis.conf

    配置后端啟動(dòng),默認(rèn)為no,修改為yes

  • 修改配置文件,注釋掉:#bind 127.0.0.1

  • 修改配置文件,取消保護(hù)模式,將protected-mode yes修改為protected-mode no(3.2.8版本需要,低版本不需要配置)

  • 安裝目錄/bin下每個(gè)文件的作用


    /bin下面文件說明

      redis3.0新增的redis-sentinel是redis集群管理工具可實(shí)現(xiàn)高可用。

  • 帶配置文件啟動(dòng):
    ./redis-server redis.conf

redis啟動(dòng)

前端模式啟動(dòng)
  直接運(yùn)行bin/redis-server將以前端模式啟動(dòng),前端模式啟動(dòng)的缺點(diǎn)是ssh命令窗口關(guān)閉則redis-server程序結(jié)束,不推薦使用此方法。如下圖:

前端模式啟動(dòng)

后端模式啟動(dòng)

  • 修改redis.conf配置文件, daemonize yes以后端模式啟動(dòng)。

  • 執(zhí)行如下命令啟動(dòng)redis:
    cd /usr/local/redis
    ./bin/redis-server ./redis.conf

    查看redis端口

  • redis默認(rèn)使用6379端口。

  • 也可vi redis.conf文件,修改端口號(hào):

    修改默認(rèn)端口

  • 帶配置文件啟動(dòng):./redis-server redis.conf,這樣就是后端模式啟動(dòng)

redis客戶端

在redis的安裝目錄中有redis的客戶端,即redis-cli(Redis Command Line Interface),它是Redis自帶的基于命令行的Redis客戶端。
  redis-cli默認(rèn)連接本機(jī)的redis,本機(jī)的redis沒有啟動(dòng)則報(bào)connection refused的錯(cuò)誤。

  • 指定連接redis服務(wù)的ip和端口:
    ./redis-cli -h 你的ip -p 6379

redis多數(shù)據(jù)庫

  • redis實(shí)例
      一個(gè)redis進(jìn)程就是一個(gè)redis實(shí)例,一臺(tái)服務(wù)器可以同時(shí)有多個(gè)redis實(shí)例,不同的redis實(shí)例提供不同的服務(wù)端口對(duì)外提供服務(wù),每個(gè)redis實(shí)例之間互相影響。每個(gè)redis實(shí)例都包括自己的數(shù)據(jù)庫,數(shù)據(jù)庫中可以存儲(chǔ)自己的數(shù)據(jù)。
  • 多數(shù)據(jù)庫測(cè)試
      一個(gè)Redis實(shí)例可以包括多個(gè)數(shù)據(jù)庫,客戶端可以指定連接某個(gè)redis實(shí)例的哪個(gè)數(shù)據(jù)庫,就好比一個(gè)mysql中創(chuàng)建多個(gè)數(shù)據(jù)庫,客戶端連接時(shí)指定連接哪個(gè)數(shù)據(jù)庫。
      一個(gè)redis實(shí)例最多可提供16個(gè)數(shù)據(jù)庫,下標(biāo)從0到15,客戶端默認(rèn)連接第0號(hào)數(shù)據(jù)庫,也可以通過select選擇連接哪個(gè)數(shù)據(jù)庫,如下連接1號(hào)庫:



    在1號(hào)庫中查詢上節(jié)設(shè)置的數(shù)據(jù),結(jié)果查詢不到:



    重新選擇第0號(hào)數(shù)據(jù)庫,查詢數(shù)據(jù):

    如果選擇一個(gè)不存在數(shù)據(jù)庫則會(huì)報(bào)錯(cuò):

    注意:redis不支持修改數(shù)據(jù)庫的名稱,只能通過select 0、select 1...選擇數(shù)據(jù)庫。

啟動(dòng)多個(gè)redis進(jìn)程

方式一:

  • 啟動(dòng)時(shí)指定端口可在一臺(tái)服務(wù)器啟動(dòng)多個(gè)redis進(jìn)程。
    cd /usr/local/redis/bin
    ./redis-server ./redis.conf --port 6380

方式二(推薦)

  • 創(chuàng)建多個(gè)redis目錄,以端口號(hào)命名,比如:創(chuàng)建6379、6380兩個(gè)目錄,將redis的安裝文件bin和conf拷貝至這兩個(gè)目錄。
  • 修改6379目錄下的redis.conf設(shè)置端口號(hào)為6379
  • 修改6380目錄下的redis.conf設(shè)置端口號(hào)為6380
  • 啟動(dòng)6379目錄下的redis-server程序:
    cd 6379
    ./redis-server . /redis.conf
  • 啟動(dòng)6380目錄下的redis-server程序:
    cd 6380
    ./redis-server . /redis.conf

redis關(guān)閉

  • 前端模式,在啟動(dòng)窗口按ctrl+c就可以關(guān)閉,下面的關(guān)閉方式都是針對(duì)后端模式啟動(dòng)的時(shí)候。
  • 強(qiáng)制關(guān)閉:kill -9 進(jìn)程號(hào)
  • 通過客戶端關(guān)閉:./redis-cli shutdown
  • 強(qiáng)制關(guān)閉可能會(huì)有數(shù)據(jù)丟失,通過客戶端關(guān)閉會(huì)先保存數(shù)據(jù)再關(guān)閉
最后編輯于
?著作權(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)容

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