學(xué)AI,好工作 就找北大青鳥
關(guān)注小青 聽課做題,輕松學(xué)習(xí)
周一至周日
4000-9696-28

實操演練解讀非關(guān)系型數(shù)據(jù)庫—Redis

來源:北大青鳥總部 2023年02月06日 11:16

摘要: 非關(guān)系型數(shù)據(jù)庫(NoSQL)通常用于存儲那些類型不固定的,也沒有什么規(guī)律的數(shù)據(jù)。現(xiàn)在的企業(yè)每天都產(chǎn)生大量的數(shù)據(jù)過程中,非關(guān)系型數(shù)據(jù)庫的應(yīng)用非常廣泛,應(yīng)用場景也非常多。

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

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

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

這個時期的關(guān)系型數(shù)據(jù)庫得到了較為廣泛的關(guān)注和應(yīng)用,網(wǎng)站訪問量談不上什么高并發(fā)、更別說什么用戶體驗了。

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

現(xiàn)在單純的依靠關(guān)系型數(shù)據(jù)庫已經(jīng)無法滿足的我們的業(yè)務(wù)需求了,更何況當今在云計算、大數(shù)據(jù)、人工智能盛行的時代,對技術(shù)的需求也更加的多元化。

現(xiàn)在網(wǎng)絡(luò)上每天都會產(chǎn)生龐大的數(shù)據(jù),這些數(shù)據(jù)有很大一部分是由關(guān)系型數(shù)據(jù)庫來處理,其嚴謹成熟的數(shù)學(xué)理論基礎(chǔ)使得數(shù)據(jù)建模和應(yīng)用程序編程更加簡單。

然而,由于數(shù)據(jù)量級很大而且包含有大量的無規(guī)律的數(shù)據(jù),而我們?nèi)绻胍玫睦眠@些數(shù)據(jù),對數(shù)據(jù)的處理和存儲的重要性也越來越高,如果還僅僅依賴關(guān)系型數(shù)據(jù)庫顯然是不太現(xiàn)實的。所以,此時非關(guān)系型數(shù)據(jù)庫(NoSQL)就應(yīng)運而生了,


接下來讓我們看看什么是非關(guān)系型數(shù)據(jù)庫。


所謂非關(guān)系型數(shù)據(jù)庫,其實是相對于關(guān)系型數(shù)據(jù)庫而說的,我們都知道關(guān)系型數(shù)據(jù)庫通常都是處理一些結(jié)構(gòu)化的數(shù)據(jù),這些數(shù)據(jù)通常都是有某些對應(yīng)關(guān)系。

非關(guān)系型數(shù)據(jù)庫(NoSQL)通常用于存儲那些類型不固定的,也沒有什么規(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


今天咱們就為大家解讀其中一個非常優(yōu)秀且用的非常多的非關(guān)系型數(shù)據(jù)庫-Redis。



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


  • string(字符串)

  • hash(哈希)

  • list(列表)

  • set(無序集合)

  • zset(sorted set:有序集合)


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



走進Redis實戰(zhàn)俗話說的好:"光說不練假把式,光練不說傻把式,連說帶練全把式",所以接下來,咱們就連說代練的實操一把


開發(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對操作Redis的客戶端的封裝,沒錯Spring就是這么優(yōu)秀。

我們知道在SpringBoot中默認集成的就是Spring Data Redis,它提供了針對Redis提供了非常方便的操作模板類RedisTemplate;那么接下來我們就來看看Spring Boot中Spring Data Redis的具體用法。

Tips:在spring中凡是以XxxTemplate命名的類,都是Spring提供的操作xxx的模板類。如:RedisTemplate就是操作Redis的模板類


創(chuàng)建項目工程

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


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



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



添加Redis配置信息

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



實戰(zhàn)操作

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



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


  • redisTemplate.opsForValue() 操作string

  • redisTemplate.opsForHash() 操作hash

  • redisTemplate.opsForList() 操作list

  • redisTemplate.opsForSet() 操作set

  • redisTemplate.opsForZSet() 操作有序set


實戰(zhàn)測試結(jié)果如下:



結(jié)果表明我們從redis中取出的數(shù)據(jù)和存儲的數(shù)據(jù)是一樣的,說明我們在spring中使用Spring Data Redis是成功的,是不是很簡單呢,馬上動手練練吧


標簽: redis
熱門班型時間
人工智能就業(yè)班 即將爆滿
AI應(yīng)用線上班 即將爆滿
UI設(shè)計全能班 即將爆滿
數(shù)據(jù)分析綜合班 即將爆滿
軟件開發(fā)全能班 爆滿開班
網(wǎng)絡(luò)安全運營班 爆滿開班
報名優(yōu)惠
免費試聽
課程資料
官方微信
返回頂部
培訓(xùn)課程 熱門話題 站內(nèi)鏈接