一文搞定非關(guān)系型數(shù)據(jù)庫—Redis
課工場 | 2021-09-09 16:28:08  1288 瀏覽

背景介紹

話說在互聯(lián)網(wǎng)發(fā)展的早期,那還是一個(gè)各路軍閥混戰(zhàn),實(shí)戰(zhàn)為王的時(shí)代,沒有所謂正規(guī)軍,搞定問題才是王道;


當(dāng)然,那個(gè)時(shí)期也沒有那么多問題,畢竟這個(gè)時(shí)期,互聯(lián)網(wǎng)還是個(gè)新鮮的詞匯,能被稱作是網(wǎng)民的人也都是稀有物種,上網(wǎng)多半是大戶人家才玩的起的高端奢侈品。


從技術(shù)的角度來看,此時(shí)還處在Web應(yīng)用發(fā)展的初期互聯(lián)網(wǎng)技術(shù)架構(gòu)還是最原始的單體架構(gòu),因?yàn)榇藭r(shí)的網(wǎng)民數(shù)量還是很少,一個(gè)服務(wù)器完全足夠扛起用戶的訪問的壓力。


這個(gè)時(shí)期的關(guān)系型數(shù)據(jù)庫得到了較為廣泛的關(guān)注和應(yīng)用,網(wǎng)站訪問量談不上什么高并發(fā)、更別說什么用戶體驗(yàn)了,能玩的起就已經(jīng)是完勝上億中國人了。



不過現(xiàn)在,中國的互聯(lián)網(wǎng)發(fā)展已經(jīng)是發(fā)生了天翻地覆的變化,也早已經(jīng)不是當(dāng)年那個(gè)“吳下阿蒙”,在如今這個(gè)不提三高(高并發(fā)、高可用、高性能)都不好意思說自己是個(gè)程序猿的時(shí)代。


單純的依靠關(guān)系型數(shù)據(jù)庫已經(jīng)無法滿足的我們的業(yè)務(wù)需求了,更何況當(dāng)今在云計(jì)算、大數(shù)據(jù)、人工智能盛行的時(shí)代,對(duì)技術(shù)的需求也更加的多元化;現(xiàn)在網(wǎng)絡(luò)上每天都會(huì)產(chǎn)生龐大的數(shù)據(jù),這些數(shù)據(jù)有很大一部分是由關(guān)系型數(shù)據(jù)庫來處理,其嚴(yán)謹(jǐn)成熟的數(shù)學(xué)理論基礎(chǔ)使得數(shù)據(jù)建模和應(yīng)用程序編程更加簡單。


然而,由于數(shù)據(jù)量級(jí)很大而且包含有大量的規(guī)律的數(shù)據(jù),而我們?nèi)绻胍?/span>利用這些數(shù)據(jù),對(duì)數(shù)據(jù)的處理和存儲(chǔ)的重要性也越來越高,如果還僅僅依賴關(guān)系型數(shù)據(jù)庫顯然是不太現(xiàn)實(shí)的;所以,此時(shí)非關(guān)系型數(shù)據(jù)庫(NoSQL)就應(yīng)運(yùn)而生了(好像所有技術(shù)都這么來的,技術(shù)誕生通常是為了要解決某些業(yè)務(wù)),先來看看什么是非關(guān)系型數(shù)據(jù)庫

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

所謂非關(guān)系型數(shù)據(jù)庫,其實(shí)是相對(duì)于關(guān)系型數(shù)據(jù)庫而說的,我們都知道關(guān)系型數(shù)據(jù)庫通常都是處理一些結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)通常都是有某些對(duì)應(yīng)關(guān)系; 而非關(guān)系型數(shù)據(jù)庫(NoSQL)通常用于存儲(chǔ)那些類型不固定的,也沒有什么規(guī)律的數(shù)據(jù),現(xiàn)在的企業(yè)每天都產(chǎn)生大量的數(shù)據(jù)過程中,非關(guān)系型數(shù)據(jù)庫的應(yīng)用非常廣泛,應(yīng)用場景也非常多,比如:緩存等,目前比較常用的非關(guān)系型數(shù)據(jù)庫有

  • Redis

  • Memcache

  • MongoDb

  • HBase

今天咱們就先來了解其中一個(gè)非常優(yōu)秀用的也非常多的非關(guān)系型數(shù)據(jù)庫-Redis

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

提到Redis可謂是無人不知無人不曉,當(dāng)然是在程序猿這個(gè)可愛的群體中;不管你是從事Python、Java、Go,還是世界上最好的語言PHP開發(fā),Redis都應(yīng)該是一個(gè)比較熟悉的中間件產(chǎn)品。Redis是一個(gè) Key-Value 存儲(chǔ)結(jié)構(gòu),它支持存儲(chǔ)的 value 類型非常豐富:

  • string(字符串)

  • hash(哈希)

  • list(列表)

  • set(無序集合)

  • zset(sorted set:有序集合)

在Java開發(fā)過程中Redis的應(yīng)用場景也非常多,比如:緩存、秒殺、分布式鎖等;接下來咱么就來一睹Redis芳容

Redis實(shí)戰(zhàn)篇

俗話說好:"光說不練假把式,光練不說傻把式,連說帶練全把式",所以接下來,咱們就連說代練的實(shí)操一把

開發(fā)環(huán)境介紹

首先介紹一下我們的開發(fā)環(huán)境,這里咱么是基于Java語言使用IDEA做為開發(fā)工具,使用Spring Boot來集成Redis

Redis的安裝內(nèi)容,大家可以按照自己的習(xí)慣使用Windows版、Linux版本都可以。

使用Spring Data Redis操作Redis

Java中操作Redis的方案很多,我們使用目前最主流的 Spring Boot Redis,從名稱上我們就可以看出來,這又是Spring對(duì)操作Redis的客戶端的封裝,沒錯(cuò)Spring就是這么優(yōu)秀;我們知道在Spring Boot中默認(rèn)集成的就是 Spring Data Redis,它提供了 針對(duì) Redis 提供了非常方便的操作模板類 RedisTemplate ;那么接下來我們就來看看 Spring Boot 中 Spring Data Redis 的具體用法。


Tips:

在spring中凡是以XxxTemplate命名的類,都是Spring提供的操作xxx的模板類

如:RedisTemplate 就是操作Redis的模板類

創(chuàng)建項(xiàng)目工程

使用Spring Initializr創(chuàng)建Spring Boot 基礎(chǔ)工程,引入 Redis 依賴有兩種方式:

  1. 直接在pom文件中加入redis依賴

  • <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

  1. 在創(chuàng)建項(xiàng)目的時(shí)候直接勾選Spring Boot Redis


添加Redis配置信息

在application.properties中添加redis的相關(guān)配置信息

#redis
# redis默認(rèn)的0號(hào)數(shù)據(jù)庫(共16個(gè))
spring.redis.database=0
spring.redis.host=192.168.25.136
spring.redis.port=6379
spring.redis.password=root@234
#連接池最大連接數(shù)
spring.redis.jedis.pool.max-active=8
#連接池最大空閑連接數(shù)
spring.redis.jedis.pool.max-idle=8
#連接池最小空閑連接數(shù)
spring.redis.jedis.pool.min-idle=0

實(shí)戰(zhàn)操作

接下來咱么來編寫一個(gè)測試類,存儲(chǔ)一個(gè)字符串類型的數(shù)據(jù),并且取出來驗(yàn)證是否存儲(chǔ)成功

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class DemoApplicationTests {

@Autowired
private RedisTemplate redisTemplate;

@Test
public void testRedis() {
//操作字符串
ValueOperations opsForValue = redisTemplate.opsForValue();
// 存儲(chǔ) 數(shù)據(jù)
opsForValue.set("kgc", "kegongchang");
// 取出存儲(chǔ)的數(shù)據(jù)
System.out.println("取出存儲(chǔ)的數(shù)據(jù):" + opsForValue.get("kgc"));
}
}

RedisTemplate模板類提供了對(duì)5種數(shù)據(jù)結(jié)構(gòu)操作的方法,其他的數(shù)據(jù)類型大家感興趣可以自己去試下,使用方式都是一樣的

  • redisTemplate.opsForValue() 操作string

  • redisTemplate.opsForHash() 操作hash

  • redisTemplate.opsForList() 操作list

  • redisTemplate.opsForSet() 操作set

  • redisTemplate.opsForZSet() 操作有序set

我看下測試結(jié)果如下:

我們從redis中取出的數(shù)據(jù)和存儲(chǔ)的數(shù)據(jù)是一樣的,說明我們?cè)趕pring中使用Spring Data Redis是成功的,是不是很簡單呢,馬上動(dòng)手練練吧




標(biāo)簽:
欧美性大战XXXXX久久久√,国产无遮挡裸体免费视频网站 ,久99久女女精品免费观看69堂,五月综合激情婷婷六月,国自产精品手机在线观看视频,欧美色爱综合网,国产精品三级国产AV,免费黄色高清无码,**a免费视频毛片,亚洲AV永久无码精品无码四虎
国产精品中文久久久久久久 | 无码国产午夜福利| 亚洲无码第一页| 久久永久免费人妻精品我不卡| 亚洲综合无码第一页| 欧洲精品无码完整资源抢先看| 亚洲精品国产精品制服丝袜| 精品日韩二区三区精品视频| 久久久久久妓女精品影院| 青草香蕉精品视频在线观看| 99久久精品费精品国产| 亚洲伊人久久综合影院2021| 亚洲精品无码伊人久久| 国产精品久久人人做人人爽| 国产女主播一区二区在线观看| 国产97色在线 | 日韩| 亚洲成人黄色在线观看| 国产色AV综合在线| 色婷婷六月亚洲综合香蕉| 国产高清不卡一区二区| 国产精品18禁污污网站| 国产亚洲精品aa在线观看| 精品一区二区三区av| 18禁亚洲深夜福利| 久久久久青草大香综合精品| 色综合中文字幕久久88| 成人无码高潮喷液AV无码| 99热成人精品国产免费| 狠狠精品干练久久久无码中文字幕 | 国产在线无码不卡播放| 无码A∨高潮抽搐流白浆| 精品无码日韩国产不卡av | 国产成人精品一区二区三区无码| 人禽杂交18禁网站| 国产人成无码视频在线app| 4480亚洲无所无码| 五月婷婷综合激情网| 特级毛片爽WW| 精品久久久久久亚洲精品| 日韩在线视频免费播放| 隔壁老王国产在线精品|