首頁 > 軟體

一文搞懂阿里雲伺服器部署Redis並整合Spring Boot

2022-09-28 14:00:38

一、什麼是Redis

redis是一個key-value儲存系統。和Memcached類似,它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set --有序集合)和hash(雜湊型別)。這些資料型別都支援push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支援各種不同方式的排序。與memcached一樣,為了保證效率,資料都是快取在記憶體中。區別的是redis會週期性的把更新的資料寫入磁碟或者把修改操作寫入追加的記錄檔案,並且在此基礎上實現了master-slave(主從)同步。

Redis是一個NoSQL資料庫

不僅僅是資料庫!

二、Redis的優缺點

優點:

  • 讀寫效能非常好,Redis讀的速度是 110000次/s ,寫的速度是 81000次/s
  • 支援資料持久化,AOF和RDB兩種持久化方式
  • 支援事務,事務是原子性的
  • 資料結構豐富,支援多種資料結構(String、List、Set、Hash、ZSet、HyperLogLog、Bitmaps、Geospatial等)
  • 支援主從複製、讀寫分離

缺點:

  • 資料庫容量受到實體記憶體的限制,不能用作海量資料的高效能讀寫,因此Redis適合的場景主要侷限在較小資料量的高效能操作和運算上。
  • Redis 不具備自動容錯和恢復功能,主機從機的宕機都會導致前端部分讀寫請求失敗,需要等待機器重啟或者手動切換前端的IP才能恢復。
  • 主機宕機前,無法完全將資料同步到從機,切換ip後會導致資料不一致問題,降低可用性

但優點還是大於缺點的,Redis是單執行緒的、基於key-value的,速度極快,可以提高系統的可用性,具有更好的高並行吞吐量能力~

三、阿里雲伺服器部署安裝Redis

❇️在Linux伺服器新建資料夾存放Redis

進入 /usr/local/,新建redis目錄

mkdir redis

下載redis

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

解壓剛剛下載的redis

tar -zvxf redis-5.0.7.tar.gz

檢視目錄檔案;

ll

輸入命令編譯檔案

make

輸入命令安裝:

make PREFIX=/usr/local/redi

此命令會生成啟動檔案:

進入bin目錄建立conf組態檔目錄

cd bin
mkdir conf

將組態檔複製到bin目錄內:

cp /usr/local/redis/redis-5.0.7/redis.conf config/

進入bin目錄啟動redis;

./redis-server # 啟動服務

✅測試連線

啟動使用者端:

./redis-cli		# 啟動使用者端

連線成功!

四、關閉防火牆,設定Redis存取埠

⏰設定Redis

進入Redis安裝目錄:

cd /usr/local/redis/redis-5.0.7/bin/config

開啟組態檔:

vim redis.conf

修改如下:

儲存並退出:

esc
:wq

⏰關閉防火牆

查詢80埠是否啟動:

firewall-cmd --query-port=80/tcp

可以看到,未啟動

關閉Linux防火牆:

systemctl status firewalld

⏰阿里雲控制檯新增6379介面存取

五、Spring Boot 整合 Redis

新建基於Maven管理的Spring Boot專案,整合Redis,實現遠端連線阿里雲伺服器測試!

♻️專案結構

匯入依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
</dependency>

⛽核心原始碼

測試類:

package com.wanshi.test;

import com.wanshi.MainApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = MainApplication.class)
public class Test1 {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @Test
    public void t1() {
        redisTemplate.opsForValue().set("xiaowang", "hello");
        String xiaowang = redisTemplate.opsForValue().get("xiaowang");
        System.out.println(xiaowang);
    }
}

✳️測試結果

執行結果:

總結

Redis是一個NoSQL非關係型資料庫,效能非常好,讀寫速度秒殺所有資料庫,可以說是效能最好的資料庫,Redis支援主從複製,快取,底層採用key-value形式儲存資料,速度非常快,效能很好,推薦使用,目前大部分企業都在使用Redis!

到此這篇關於一文搞懂阿里雲伺服器部署Redis並整合Spring Boot的文章就介紹到這了,更多相關Redis整合Spring Boot內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com