作者:cuifuan;
來源:Java知音


首先,Redis是什麼?

Redis是一個開源的,基於內存的鍵值數據存儲,用作數據庫,緩存和消息代理。在實現方面,Key-Value存儲代表NoSQL空間中最大和最老的成員之一。Redis支持數據結構,如字符串,散列,列表,集和帶範圍查詢的有序集。在spring data redis的框架,可以很容易地編寫,通過提供一個抽象的數據存儲使用Redis的鍵值存儲的Spring應用程序。 非關係型數據庫,基於內存,存取數據的速度不是關係型數據庫所能比擬的 redis是鍵值對(key-value)的數據庫

有5中主要數據類型:

  • 字符串類型 string
  • 散列類型 hash
  • 列表類型 list
  • 集合類型 set
  • 有序集合類型 zset

redis緩存爲啥速度快

這麼說吧,別人問你什麼是“redis”,如果你知道,你可以直接吧啦吧啦一大堆,其實這個時候你的大腦就類似redis緩存,別人問的“redis”就是key,你說出來的結果就是value,而你如果不知道,你就去上網查,然後再告訴別人,這就類似於查詢數據庫了,你查了再告訴別人當然慢了!你把腦袋裏的東西寫進筆記就類似redis持久化保存了;你過了兩個月把這玩意忘了,就是redis的定期刪除了;引自:https://blog.csdn.net/angleflyyy/article/details/81627785準備工作項目工具環境:
  • IDEA 2018.2
  • Gradle 4+
  • JDK1.8以上
  • redis服務器

設置Redis服務器

redis下載地址:https://redis.io/download

如果你的電腦是Mac:

brew install redis

然後運行redis服務器

Spring技術學習系列之SpringBoot入門Redis

初始化項目

現在去Spring開始界面初始化一個項目

Spring技術學習系列之SpringBoot入門Redis


這裏選擇的是Gradle,選擇完成點擊Generate Projrct生成項目,這個時候會自動下載一個壓縮包給你,解壓過後導入,導入IDEA教程:http://note.youdao.com/noteshare?id=74e2d65e2d22cd684c3fdd6695b3ecdf

Gradle 依賴管理

讓我們在build.gradle中爲我們正在構建的示例應用程序聲明必要的依賴項

Spring技術學習系列之SpringBoot入門Redis

開始使用

憑藉着SpringBoot的開箱即用的特點,集成Redis也不例外

  • redisTemplate.opsForValue();//操作字符串
  • redisTemplate.opsForHash();//操作hash
  • redisTemplate.opsForList();//操作list
  • redisTemplate.opsForSet();//操作set
  • redisTemplate.opsForZSet();//操作有序set


Spring技術學習系列之SpringBoot入門Redis


在Spring的測試類中開始使用:

redisTemplate.opsForValue().set("username","test");

執行過後發現存在redis中的數據:

Spring技術學習系列之SpringBoot入門Redis


是亂的,是因爲在set後redis會序列化key和value,所以我們要在config中重寫一下redisTemplate

src/main/java/com/example/springbootredisdemo/config/RedisConfig.java

Spring技術學習系列之SpringBoot入門Redis

再去執行一下剛剛的方法

Spring技術學習系列之SpringBoot入門Redis


經過自定義的序列化之後可以了,沒有亂碼了

opsForList()添加操作

Spring技術學習系列之SpringBoot入門Redis



Spring技術學習系列之SpringBoot入門Redis


opsForList()刪除操作


Spring技術學習系列之SpringBoot入門Redis


Spring技術學習系列之SpringBoot入門Redis


通過源碼看這裏有三個參數:

  • key 對應的是redis中存的key值
  • count 正數就是從左邊開始刪除 負數是從右面 例如-1就從右刪除第一個值爲value的,0代表刪除全部值爲value的
  • value 就是需要從list移除的值

opsForSet()添加操作

利用了set值的不可重複

Spring技術學習系列之SpringBoot入門Redis

結果

Spring技術學習系列之SpringBoot入門Redis


符合了Set集合的無序和不可重複性

opsForSet()的刪除操作

這個刪除操作就比較容易了,直接根據set的key值,後面參數寫其需要刪除的value就可以

Spring技術學習系列之SpringBoot入門Redis

opsForHash()操作

Spring技術學習系列之SpringBoot入門Redis

結果

Spring技術學習系列之SpringBoot入門Redis


測試類SpringbootRedisDemoApplicationTests

src/test/java/com/example/springbootredisdemo/SpringbootRedisDemoApplicationTests.java

Spring技術學習系列之SpringBoot入門Redis

Spring技術學習系列之SpringBoot入門Redis

Spring技術學習系列之SpringBoot入門Redis

Spring技術學習系列之SpringBoot入門Redis

小知識

方法名字前加ABCD...是爲了讓方法有執行順序,根據測試方法名字搞定執行順序,在方法上加註解 @FixMethodOrder(MethodSorters.NAME_ASCENDING)

日誌註解@Slf4j是爲了讓日誌書寫更方便

Spring技術學習系列之SpringBoot入門Redis

多個參數可以用多個{},總之,喜歡哪個用哪個,謝謝!

碼雲代碼地址

https://gitee.com/cuifuan/SpringBoot
相关文章