免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

之四 2流高手速成記:SpringBoot整合redis及mongodb

最近很忙 , 好不容易才抽出了時間 , 咱們接上回
上次我們主要講了如何通過SpringBoot快速集成mybatis/mybatis-plus , 以實現(xiàn)業(yè)務交互中的數(shù)據(jù)持久化 , 而這一切都是基于關(guān)系型數(shù)據(jù)庫(SQL)實現(xiàn)的
本節(jié)我們來把關(guān)注點轉(zhuǎn)向NoSQL

NoSQL的概念:
NoSQL , 泛指非關(guān)系型的數(shù)據(jù)庫 。隨著互聯(lián)網(wǎng)web2.0網(wǎng)站的興起 , 傳統(tǒng)的關(guān)系數(shù)據(jù)庫在處理web2.0網(wǎng)站 , 特別是超大規(guī)模和高并發(fā)的SNS類型的web2.0純動態(tài)網(wǎng)站已經(jīng)顯得力不從心 , 出現(xiàn)了很多難以克服的問題 , 而非關(guān)系型的數(shù)據(jù)庫則由于其本身的特點得到了非常迅速的發(fā)展 。NoSQL數(shù)據(jù)庫的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重數(shù)據(jù)種類帶來的挑戰(zhàn) , 特別是大數(shù)據(jù)應用難題 。(——來自百度百科)
得益于其直接基于內(nèi)存的存儲方式 , NoSQL的訪問速度可以用“飛快”兩個字來形容
在生產(chǎn)環(huán)境中 , NoSQL常常配合傳統(tǒng)關(guān)系型數(shù)據(jù)庫來使用 , 比如構(gòu)建一層數(shù)據(jù)緩存來極大的提升數(shù)據(jù)的讀取速度
NoSQL在日常業(yè)務的驅(qū)動之下 , 逐漸發(fā)展出幾個主要的類別:鍵值對數(shù)據(jù)庫、文檔型數(shù)據(jù)庫、列存儲數(shù)據(jù)庫以及圖形化數(shù)據(jù)庫
這4類NoSQL數(shù)據(jù)庫之中最具代表性的 , 當屬鍵值對數(shù)據(jù)庫類別下的Redis , 以及文檔型數(shù)據(jù)庫的Mongodb , 本節(jié)我們重點關(guān)注這兩個產(chǎn)品在SpringBoot下的整合及使用
照慣例先上項目結(jié)構(gòu):
之四 2流高手速成記:SpringBoot整合redis及mongodb

文章插圖
一、先看Redis的使用:
1. 在pom.xml中添加Redis相關(guān)依賴項<!-- 引入redis依賴(基于lettuce) --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>2. 在application.properties中添加Redis的相關(guān)配置# redis相關(guān)設(shè)置spring.redis.database=0spring.redis.host=127.0.0.1spring.redis.port=6379spring.redis.password=# redis默認基于lettuce內(nèi)核spring.redis.lettuce.pool.max-active=8spring.redis.lettuce.pool.max-idle=8spring.redis.lettuce.pool.max-wait=-1msspring.redis.lettuce.pool.min-idle=0這里關(guān)于lettuce內(nèi)核有必要給大家解釋一下:
在SpringBoot2.x版本之前 , 其集成的默認Redis庫是Jedis , 而在2.x版本之后才改為默認基于Lettuce
Jedis默認和Redis直連 , 為非線程安全模型 , 并發(fā)環(huán)境下需要池化使用
而Lettuce則是線程安全的 , 并發(fā)環(huán)境下可以通過一個實例搞定
當然 , 你也可以在SpringBoot2.x環(huán)境下依然使用Jedis , 只需要把 spring.redis.lettuce 相關(guān)配置替換為 spring.redis.jedis 即可
更多內(nèi)容大家感興趣可以從網(wǎng)上查閱相關(guān)資料 , 這里推薦一篇:https://blog.csdn.net/kenkao/article/details/127085687
3. 新建 service/RedisService 接口及其實現(xiàn)類 service/impl/RedisServiceImplpackage com.example.hellospringboot.service;public interface RedisService {void set(String key, String val);String get(String key);}package com.example.hellospringboot.service.impl;import com.example.hellospringboot.service.RedisService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.StringRedisTemplate;import org.springframework.data.redis.core.ValueOperations;import org.springframework.stereotype.Service;@Servicepublic class RedisServiceImpl implements RedisService {@AutowiredStringRedisTemplate redis;public void set(String key, String val){ValueOperations<String,String> ops = redis.opsForValue();ops.set(key, val);}public String get(String key){ValueOperations<String,String> ops = redis.opsForValue();return ops.get(key);}}

經(jīng)驗總結(jié)擴展閱讀