一文搞懂阿里云服務(wù)器部署Redis并整合Spring?Boot
一、什么是Redis
redis是一個key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了master-slave(主從)同步。
Redis是一個NoSQL數(shù)據(jù)庫
不僅僅是數(shù)據(jù)庫!
二、Redis的優(yōu)缺點
優(yōu)點:
- 讀寫性能非常好,Redis讀的速度是 110000次/s ,寫的速度是 81000次/s
- 支持?jǐn)?shù)據(jù)持久化,AOF和RDB兩種持久化方式
- 支持事務(wù),事務(wù)是原子性的
- 數(shù)據(jù)結(jié)構(gòu)豐富,支持多種數(shù)據(jù)結(jié)構(gòu)(String、List、Set、Hash、ZSet、HyperLogLog、Bitmaps、Geospatial等)
- 支持主從復(fù)制、讀寫分離
缺點:
- 數(shù)據(jù)庫容量受到物理內(nèi)存的限制,不能用作海量數(shù)據(jù)的高性能讀寫,因此Redis適合的場景主要局限在較小數(shù)據(jù)量的高性能操作和運(yùn)算上。
- Redis 不具備自動容錯和恢復(fù)功能,主機(jī)從機(jī)的宕機(jī)都會導(dǎo)致前端部分讀寫請求失敗,需要等待機(jī)器重啟或者手動切換前端的IP才能恢復(fù)。
- 主機(jī)宕機(jī)前,無法完全將數(shù)據(jù)同步到從機(jī),切換ip后會導(dǎo)致數(shù)據(jù)不一致問題,降低可用性
但優(yōu)點還是大于缺點的,Redis是單線程的、基于key-value的,速度極快,可以提高系統(tǒng)的可用性,具有更好的高并發(fā)吞吐量能力~
三、阿里云服務(wù)器部署安裝Redis
??在Linux服務(wù)器新建文件夾存放Redis
進(jìn)入 /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
此命令會生成啟動文件:
進(jìn)入bin目錄創(chuàng)建conf配置文件目錄
cd bin mkdir conf
將配置文件復(fù)制到bin目錄內(nèi):
cp /usr/local/redis/redis-5.0.7/redis.conf config/
進(jìn)入bin目錄啟動redis;
./redis-server # 啟動服務(wù)
?測試連接
啟動客戶端:
./redis-cli # 啟動客戶端
連接成功!
四、關(guān)閉防火墻,配置Redis訪問端口
?配置Redis
進(jìn)入Redis安裝目錄:
cd /usr/local/redis/redis-5.0.7/bin/config
打開配置文件:
vim redis.conf
修改如下:
保存并退出:
esc :wq
?關(guān)閉防火墻
查詢80端口是否啟動:
firewall-cmd --query-port=80/tcp
可以看到,未啟動
關(guān)閉Linux防火墻:
systemctl status firewalld
?阿里云控制臺添加6379接口訪問
五、Spring Boot 整合 Redis
新建基于Maven管理的Spring Boot項目,整合Redis,實現(xiàn)遠(yuǎn)程連接阿里云服務(wù)器測試!
??項目結(jié)構(gòu)
導(dǎo)入依賴:
<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); } }
??測試結(jié)果
執(zhí)行結(jié)果:
總結(jié)
Redis是一個NoSQL非關(guān)系型數(shù)據(jù)庫,性能非常好,讀寫速度秒殺所有數(shù)據(jù)庫,可以說是性能最好的數(shù)據(jù)庫,Redis支持主從復(fù)制,緩存,底層采用key-value形式存儲數(shù)據(jù),速度非??欤阅芎芎?,推薦使用,目前大部分企業(yè)都在使用Redis!
到此這篇關(guān)于一文搞懂阿里云服務(wù)器部署Redis并整合Spring Boot的文章就介紹到這了,更多相關(guān)Redis整合Spring Boot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Redis基本數(shù)據(jù)類型List常用操作命令
這篇文章主要為大家介紹了Redis數(shù)據(jù)類型List常用命令操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05內(nèi)存型數(shù)據(jù)庫Redis持久化小結(jié)
redis是一個支持持久化的內(nèi)存數(shù)據(jù)庫,也就是說redis需要經(jīng)常將內(nèi)存中的數(shù)據(jù)同步到磁盤來保證持久化.redis支持四種持久化方式,一是 Snapshotting(快照)也是默認(rèn)方式,二是Append-only file(縮寫aof)的方式,三是虛擬內(nèi)存方式,四是diskstore方式.今天我們總結(jié)下前2種。2017-09-09關(guān)于SpringBoot 使用 Redis 分布式鎖解決并發(fā)問題
針對上面問題,一般的解決方案是使用分布式鎖來解決,本文通過場景分析給大家介紹關(guān)于SpringBoot 使用 Redis 分布式鎖解決并發(fā)問題,感興趣的朋友一起看看吧2021-11-11