網(wǎng)站首頁 編程語言 正文
一、什么是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ù)量的高性能操作和運算上。
- Redis 不具備自動容錯和恢復(fù)功能,主機從機的宕機都會導(dǎo)致前端部分讀寫請求失敗,需要等待機器重啟或者手動切換前端的IP才能恢復(fù)。
- 主機宕機前,無法完全將數(shù)據(jù)同步到從機,切換ip后會導(dǎo)致數(shù)據(jù)不一致問題,降低可用性
但優(yōu)點還是大于缺點的,Redis是單線程的、基于key-value的,速度極快,可以提高系統(tǒng)的可用性,具有更好的高并發(fā)吞吐量能力~
三、阿里云服務(wù)器部署安裝Redis
??在Linux服務(wù)器新建文件夾存放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目錄創(chuàng)建conf配置文件目錄
cd bin mkdir conf
將配置文件復(fù)制到bin目錄內(nèi):
cp /usr/local/redis/redis-5.0.7/redis.conf config/
進入bin目錄啟動redis;
./redis-server # 啟動服務(wù)
?測試連接
啟動客戶端:
./redis-cli # 啟動客戶端
連接成功!
四、關(guān)閉防火墻,配置Redis訪問端口
?配置Redis
進入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)遠程連接阿里云服務(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!
原文鏈接:https://blog.csdn.net/weixin_45526437/article/details/123901841
相關(guān)推薦
- 2022-06-25 C++鏈表類的封裝詳情介紹_C 語言
- 2022-03-31 C語言類的基本語法詳解_C 語言
- 2023-01-07 Flutter?Widget開發(fā)之Focus組件圖文詳解_Android
- 2022-05-19 使用?docker?部署?APISIX的詳細介紹_docker
- 2022-11-03 python回歸分析邏輯斯蒂模型之多分類任務(wù)詳解_python
- 2023-01-11 pytorch中如何設(shè)置隨機種子_python
- 2022-03-25 修改?asp.net?core?5?程序的默認端口號_ASP.NET
- 2023-01-01 c語言函數(shù)如何求兩個數(shù)的最大值_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支