Redis 簡介
官網:https://redis.io/
菜鳥教程:https://www.runoob.com/redis/redis-tutorial.html

Redis是什么?
- redis是一種資料庫,C語言撰寫的,開源的,基于記憶體運行并支持持久化的,高性能的NoSQL資料庫,Reids中的資料大部分時間都是存盤記憶體中,適合存盤頻繁訪問,資料量比較小的資料,
資料庫應用的發展歷程
- 單機資料庫時代 > 快取,水平切分時代 > 讀寫分離時代 > 分表分庫時代(集群)
Redis的特點
- 支持資料持久化,redis支持資料持久化,可以將記憶體中的資料保存在磁盤中,重啟的時候可以再次加載進行使用,
- 支持多種資料結構,redis不僅僅支持簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的存盤,
- 支持資料備份,redis支持資料的備份,即master-slave模式的資料備份,
文章目錄
- Redis 簡介
- Redis是什么?
- 資料庫應用的發展歷程
- Redis的特點
- 安裝 Redis
- Linux上安裝Redis
- Docker中安裝Redis并掛載
- 操作 Redis
- 一.啟動Redis服務
- 二.查看Redis服務
- 三.關閉Redis服務
- 四.連接Redis客戶端
- 五.退出Redis客戶端
- Redis 的基本知識
- 一.測驗Redis服務的性能
- 二.查看Redis服務是否正常
- 三.查看Redis服務器的所有統計資訊
- 四.Redis的資料庫實體
- 五.切換資料庫
- 六.查看當前資料庫實體中所有key的數量
- 七.清空資料庫實體
- 八.查看redis中的配置資訊
- Redis 的資料結構
- 一.字串型別String
- Redis中關于String型別的操作命令
- 1.設定(添加)字串型別的資料
- 2.加入一條sring型別的資料,當key不存在時設定成功,否則,則放棄設定
- 二.串列型別list
- 三.集合型別 set
- 四.哈希型別 hash
- 五.有序集合zset (sorted set)
- Redis 中關于Key的常用操作命令
- 一.通配符
- 二.查看資料庫中的key
- 三.判斷key在資料庫中是否存在
- 四.移動指定key到指定的資料庫實體
- 五.查看指定key的剩余生存時間
- 六.設定key的最大生存時間
- 七.查看指定key的資料型別
- 八.重命名key
- 九.洗掉key
- String型別的操作命令
- 1.添加字串型別的資料
- 2.從redis中獲取string型別的資料
- 3.追加字串
- 4.獲取字串的長度
- 5.將字串數值進行加數運算
- 6.將字串數值進行加offset運算
- 7.將字串數值進行減數運算
- 8.將字串數值進行減offset運算
- 9.截取字串
- 10.覆寫指定下標開始的字串
- 11.設定字串的最大生命周期
- 12.批量設定(添加)資料
- 13.批量獲取資料
- list型別資料的操作命令
- 1.將一個或多個值依次插入串列
- 2.獲取指定串列中的元素
- 3.洗掉串列中的元素
- 4.獲取串列的長度
- set型別資料的操作命令
- 1.向集合中添加元素
- 2.查看集合中的元素
- 3.判斷元素是否存在
- 4.獲取指定集合的長度
- 5.移除指定集合中一個或者多個元素
- 6.從集合中隨機獲取元素
- 7.從集合中隨機移除元素
- 8.移動元素
- 9.獲取新集合
- hash型別資料的操作命令
- 1.向哈希表添加資料
- 2.獲取哈希表中的資料
- 3.洗掉哈希表中的資料
- 4.統計哈希表中資料
- 5.哈希表資料算數運算
- Zset集合的操作命令
- 1.向zset有序集合中添加資料
- 2.獲取zset有序集合中的資料
- 3.洗掉zset有序集合中的資料
- Redis組態檔
- 1.組態檔中關于網路的配置
- 2.常規配置
- Redis持久化
- 1.RDB策略
- 2.AOF策略
- 第十三章 Redis中的事務
- SpringBoot集成Redis
安裝 Redis
- 重要:不想下載的可以關注文章最后的公眾號,根據引導獲取Redis,Xshell,Xftp,RedisDesktopManager等一系列安裝包,
Linux上安裝Redis
- 前往官網下載安裝包 (官網鏈接在文章開頭)

- 使用Xftp工具將下載好的安裝包傳入Linux服務器中的
/home目錄下

- 執行命令對安裝包進行解壓
tar -zxf redis-6.2.5.tar.gz

- 進入解壓檔案目錄使用
make對解壓的Redis檔案進行編譯(注意redis-6.2.5才是我剛剛下載的redis)


編譯完成之后,可以看到解壓檔案redis-6.2.5 中會有對應的src、conf等檔案夾

- 上述編譯沒問題后,進入src檔案夾,執行
make install進行Redis安裝,

- 如上圖展示就說明安裝成功了,怎么連接后續命令會有講到,
Docker中安裝Redis并掛載
- Docker中安裝并掛載Redis請參考文章:Docker常用實戰操作匯總,這玩意就這么簡單!(精心整理)

- 這里就不做敘述了我們直接進入實戰吧,
操作 Redis
- 這一小節主要介紹啟動連接以及退出Redis
一.啟動Redis服務
- Redis啟動后默認占用的埠號為:6379,出現盒子圖示就代表啟動成功了,
Redis的三種啟動方式
- 前臺啟動,在任何目錄下執行,需要通過 ctrl+c退出
redis-server

- 后臺啟動(推薦使用)在任何目錄下執行
redis-server &

- 啟動 redis服務時,指定組態檔
redis-server redis.conf &
二.查看Redis服務
ps -ef|grep redis

三.關閉Redis服務
redis-cli shutdown

四.連接Redis客戶端
-
Rides客戶端是一個程式,通過網路連接到Redis服務器,從而實作根Redis服務器的互動,
-
Redis客戶端發送命令,同時顯示Redis服務器的處理結果,
-
redis-cli:是redis自帶的客戶端,使用命令redis-cli就可以啟動redis的客戶端程式,
常用連接方式
- 連接本機的6379埠上的redis服務(需要先啟動服務)
redis-cli

常用引數
-p:埠號-h:ip地址
redis-cli -h ip地址 -p 埠號
五.退出Redis客戶端
- 退出客戶端有兩種方式
exit
或
quit

Redis 的基本知識
一.測驗Redis服務的性能
redis-benchmark

可選引數
-h:ip地址-p:埠號
redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100
- SET/GET 100 bytes 檢測host為127.0.0.1 埠為6379的redis服務器性能
二.查看Redis服務是否正常
ping
- 使用這個命令需要先連接客戶端
- 如果正常運行回傳 pong
三.查看Redis服務器的所有統計資訊
- info命令的使用方法有三種
info #部分Redis系統狀態統計資訊,
info all #全部Redis系統狀態統計資訊,
info section #某一塊的系統狀態統計資訊,其中section可以忽略大小寫,
- 這個命令也需要連接redis客戶端使用

- 下面我們來 一 一解讀每一個結果的作用
info Server模塊
- info Server模塊,包含了Redis服務本身的一些資訊,例如版本號、運行模式、作業系統的版本、TCP埠等
| 屬性名 | 屬性值 | 屬性描述 |
|---|---|---|
| redis_version | 6.2.5 | Redis服務版本 |
| redis_git_sha1 | 00000000 | Git SHA1 |
| redis_git_dirty | 0 | Git dirty flag |
| redis_build_id | 90492ac0856c040e | Redis build id |
| redis_mode | standalone | 運行模式,分為:Cluster 、Sentinel、Standalone |
| os | Linux 3.10.0-1160.11.1.el7.x86_64 x86_64 | Redis所在機器的作業系統 |
| arch_bits | 64 | 架構(32或64位) |
| multiplexing_api | epoll | Redis所使用的事件處理機制 |
| gcc_version | 4.8.5 | 編譯Redis時所使用的GCC版本 |
| process_id | 10444 | Redis服務行程的PID |
| run_id | d688494fa4cac3cdcbc30fa6e79f0243b3873e92 | Redis服務的識別符號 |
| tcp_port | 6379 | 監聽埠 |
| uptime_in_seconds | 15091 | 自 Redis 服務啟動以來,運行的秒數 |
| uptime_in_days | 0 | 自 Redis 服務啟動以來,運行的天數 |
| hz | 10 | serverCron每秒運行次數 |
| lru_clock | 5080008 | 以分鐘為單位進行自增的時鐘,用于LRU管理 |
| config_file | Redis的組態檔 |
四.Redis的資料庫實體
-
作用類似于mysql資料庫實體,redis中的資料庫實體只能由redis服務來創建和維護,開發人員不能修改和自行創建資料庫實體,默認情況下
redis會創建16個資料庫實體,并且給這些資料庫實體進行編號,這些編號從0開始,一直到15,使用時通過編號來使用資料庫,可以通過組態檔,指定redis自動創建的資料庫個數,redis的每一個資料庫實體本身占用的存盤空間是很少的,所以也不會造成存盤空間的浪費, -
默認情況下,redis客戶端連接的是編號0的資料庫實體
五.切換資料庫
- 切換資料庫語法 index 表示資料庫的編號
select index

六.查看當前資料庫實體中所有key的數量
dbsize

七.清空資料庫實體
- 清空當前資料庫所有實體
flushdb
- 清空所有資料庫的所有實體
flushall
八.查看redis中的配置資訊
- 查看redis中的所有配置資訊
config get *

- 查看指定配置資訊
config get [配置引數名]
Redis 的資料結構
- 程式是用來處理資料的,ridis是用來存盤資料的,程式處理完的資料要存盤到redis中,不同特點的資料要存盤在redis中不同型別的資料結構中,
一.字串型別String
- 字串型別是Redis中最基本的資料結構,它能存盤任何型別的資料,包括二進制資料,序列化后的資料,JSON化的物件甚至是一張圖片,最大512M,
| key | value |
|---|---|
| username | 張三和李四 |
Redis中關于String型別的操作命令
1.設定(添加)字串型別的資料
- 加入一條sring型別的資料,
注意:如果key已經存在了會覆寫之前的資料
set key value

2.加入一條sring型別的資料,當key不存在時設定成功,否則,則放棄設定
setnx key value
二.串列型別list
- ridis串列是簡單的字串串列,按照插入順序排序,元素可以重復,你可以添加一個元素到串列的頭部(左邊)或者尾部(右邊),底層是個鏈表結構,
| key | value |
|---|---|
| reqion | 北京 上海 天津 |
三.集合型別 set
- Redis的Set是string型別的無序不可重復集合,
| key | value |
|---|---|
| spring | |
| framework | mybatis |
| struts |
四.哈希型別 hash
- Redis hash是一個string型別的field和value的映射表,hash特別適合用于存盤物件,
| key | loginuser |
|---|---|
| fieid | value |
| uname | 張三 |
| times | 5 |
| region | 北京 |
五.有序集合zset (sorted set)
- redis有序集合zset和集合set一樣也是string型別元素的集合,且不允許重復的成員,不同的是zset的每個元素都會聯系一個分數(分數可以重復),redis通過分數來為集合中的成員進行從小到大的排序,
| key | value score |
|---|---|
| 張三 3500 | |
| salary | 李四 5000 |
| 王五 8000 |
Redis 中關于Key的常用操作命令
- 開始之前讓我們先來了解一樣Redis中三個常用通配符
一.通配符
*:匹配0個或者多個字符?:匹配一個字符[]:匹配[]里面的一個字符
二.查看資料庫中的key
- 注意:需要在Redis客戶端中執行
keys pattern

- 作用:查找所有符合模式pattern的key,pattern可以使用
通配符,
查詢所有的key
keys *

查詢m開頭的key
keys m*

查詢m開頭任意結尾且中間包含li的資料
keys m[li]*
三.判斷key在資料庫中是否存在
- 判斷key是否存在如果存在,則回傳1,不存在則回傳0
exists key

- 判斷多個key 是否存在,回傳值是存在的key的數量,一個不存在則回傳0

四.移動指定key到指定的資料庫實體
move key index
五.查看指定key的剩余生存時間
- 查看指定key的剩余生存時間,如果key沒有設定生存時間,回傳-1表示永遠存在,如果key不存在則回傳-2
ttl key

六.設定key的最大生存時間
- 設定key的最大生存時間,單位是秒,從設定后開始倒計時,計時結束后自動洗掉
expire key secondes
七.查看指定key的資料型別
type key
八.重命名key
rename key newkey
九.洗掉key
- 洗掉指定的key(根據key洗掉一條資料),回傳值是實際洗掉的key的數量
del key
- 洗掉多個key(多條資料)
del key1 key2 key3
String型別的操作命令
1.添加字串型別的資料
加入一條sring型別的資料,注意:如果key已經存在了會覆寫之前的資料
set key value

加入一條sring型別的資料,當key不存在時設定成功,否則,則放棄設定
setnx key value

2.從redis中獲取string型別的資料
get key

3.追加字串
追加字串,回傳追加后的字串長度,如果key不存在則會創建一個新的key,并設定進redis中
append key value

4.獲取字串的長度
strlen key
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QEpeV6eM-1635068865792)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210123204505533.png)]](https://img.uj5u.com/2021/10/26/2778212608265422.png)
5.將字串數值進行加數運算
加1運算
- 要求:
key所表示的value必須是數值否則報錯,回傳值為加1運算之后的資料,如果key不存在,首先設定一個key,初始化為0,然后進行incr運算,
incr key

6.將字串數值進行加offset運算
offset 表示任意的一個數
- 要求:
key所表示的value必須是數值否則報錯,回傳值為加1運算之后的資料,如果key不存在,首先設定一個key,初始化為0,然后進行incrby運算,
incrby key offset


7.將字串數值進行減數運算
減1運算
- 要求:
key所表示的value必須是數值否則報錯,回傳值為減1運算之后的資料,如果key不存在,首先設定一個key,初始化為0,然后進行decr運算,
decr key

8.將字串數值進行減offset運算
- 要求:
key所表示的value必須是數值否則報錯,回傳值為減1運算之后的資料,如果key不存在,首先設定一個key,初始化為0,然后進行decrby運算,
offset 表示任意的一個數
decrby key offset

9.截取字串
-
獲取字串key中從startIndex到endIndex的字符組成的子字串,字串下標自左至右,從0開始,依次往后,最后一個字符的下標是字串長度-1,截取到的字串包含,startIndex和endIndex,
-
字串中每一個下標也可以是負數,負下標表示自右至左,從-1開始,依次往前,-1, -2, -3, -4
getrange key startIndex endIndex
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-rnAEjLaX-1635068865796)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210124094037307.png)]](https://img.uj5u.com/2021/10/26/2778212608265428.png)
10.覆寫指定下標開始的字串
- 用value覆寫從下標為startIndex開始的字串,能覆寫幾個字符就覆寫幾個字符
setrange key startIndex value

11.設定字串的最大生命周期
setex key seconds value

12.批量設定(添加)資料
批量將string型別資料設定到redis中
mset 鍵1 值1 鍵2 值2

批量設定字串,當所有的key都不存在時設定成功,否則(只要有一個已經存在),則全部放棄設定
msetnx key1 value1 key2 value2

13.批量獲取資料
如果key不存在則回傳空
mget key1 key2 key3 key4 key5
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WjJI2JSM-1635068865798)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210124125314185.png)]](https://img.uj5u.com/2021/10/26/2778212608265432.png)
list型別資料的操作命令
- list型別:單key-多有序value,一個key對應多個value,多個value之間有順序,最左側是表頭,最右側是表尾,每一個元素都有下標,表頭元素的下標是0,依次往后排序,最后一個元素下標是串列長度-1,每一個元素的下標又可以用負數表示,負下標表示從表尾計算,最后一個元素下標用-1表示,元素在串列中的順序或者下標由放入的順序來決定
1.將一個或多個值依次插入串列
將一個或多個值依次插入串列的表頭(左側)值可以有一個或者多個,依次向左插入,先插入的在表尾,后插入的資料在表頭
lpush key value value value value

將一個或多個值依次插入串列的表尾(右側)值可以有一個或者多個,依次向右插入,先插入的在頭,后插入的資料在表尾
rpush key value value value value

2.獲取指定串列中的元素
獲取指定串列中指定下標區間的元素
lrange key startIndex endIndex

獲取指定串列中指定下標的元素
lindex key index

3.洗掉串列中的元素
從指定串列中移除并且回傳表頭元素
lpop key

從指定串列中移除并且回傳表尾元素
rpop key

根據count值移除指定串列中跟value相等的資料
count>0:從串列的左側移除count個跟value相等的資料
count<0:從串列的右側移除count個跟value相等的資料
count=0:從串列中移除所有跟value相等的資料
lrem key count value

4.獲取串列的長度
獲取指定串列的長度
llen key

set型別資料的操作命令
- set型別:Reids的Set是string型別的單key多value無序不重復集合,value之間沒有順序不能重復,通過業務資料直接操作集合,
1.向集合中添加元素
添加一個或多個元素到集合中如果value重復則只會添加一個
sadd key value value value

2.查看集合中的元素
smembers key

3.判斷元素是否存在
判斷指定元素在集合中是否存在,存在回傳1不存在回傳0
sismember key

4.獲取指定集合的長度
scard key

5.移除指定集合中一個或者多個元素
不存在的元素會被忽略,回傳值回傳成功移除的個數
srem key

6.從集合中隨機獲取元素
隨機獲取指定集合中的一個或者多個元素,適用于抽獎環境,
conut>0:隨機獲取的多個元素之間不能重復
count<0:隨機獲取的多個元素之間可能重復
srandmember key [count]

7.從集合中隨機移除元素
從指定集合中隨機移除一個或多個元素,不指定count默認移除一個
spop key [count]

8.移動元素
將指定集合中的指定元素移動到目標集合,如果目標集合中該值已存在則會覆寫,
smove key1 key2 value

9.獲取新集合
獲取第一個集合中有,但是其它集合中都沒有的元素
sdiff key key key key
獲取所有指定集合中都有的元素組成的新集合
sinter key key key key
獲取所有指定集合中所有元素組成的大集合
sunion key key key key
hash型別資料的操作命令
-
hash型別:單key:field-value field-value field-value 例如:student:id-1001 name-zhangsan age-15
-
Redis的hash是一個String型別的key和value的映射表,這里的value是一系列的鍵值對,hash特別適用于存盤物件,
-
哈希型別的資料操作總的思想是通過key和field操作value,key是資料標識,field是域,value是我們感興趣的業務資料,
1.向哈希表添加資料
將一個多或多個field-value對設定到哈希表中,如果key field已經存在,value會把以前的值覆寫掉
hset key filed1 value1 [field2 value2]

將一個field-value對設定到哈希表中,當field已經存在時,則放棄設定,回傳0表示設定失敗,1表示設定成功
hsetnx key field value field value
2.獲取哈希表中的資料
獲取指定哈希表中的指定field的值
hget key field
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-YqqRPFIK-1635068865806)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210125190138018.png)]](https://img.uj5u.com/2021/10/26/2778212608265448.png)
批量獲取指定哈希表中的field的值
hmget key field1 dield2 field3

獲取指定哈希表中所有的field和value
hgetall key

判斷指定哈希表中是否存在某一個field,存在回傳1不存在回傳0
hexists key field

獲取指定哈希表中所有的field串列
hkeys key

獲取指定哈希表中所有的value串列
hvals key

3.洗掉哈希表中的資料
從指定哈希表中洗掉一個或者多個field
hdel key field1 field2 field3

4.統計哈希表中資料
獲取指定哈希表中所有的filed個數
hlen key

5.哈希表資料算數運算
對指定哈希表中指定field值進行加法運算
hincrby key field int

對指定哈希表中指定field值進行浮點數加法運算
hincrbyfloat key field float
Zset集合的操作命令
-
Redis有序集合zset和集合set一樣也是string型別元素的集合,且不允許重復的成員,
-
不同的是zset的每個元素都會關聯一個分數(分數可以重復),redis通過分數來為集合中的成員進行從小到大的排序,既然有序集合中每一個元素都有順序,那么也都有下標,有序集合中元素的排序規則又和串列中元素的排序規則不同,
1.向zset有序集合中添加資料
將一個或者多個member及其score值加入有序集合,如果元素存在則把分數覆寫
zadd key score member

2.獲取zset有序集合中的資料
獲取指定有序集合中指定下標區間的元素,加上withscores可以看到每個元素的分數,
zrange key startIndex endIndex [withscores]

獲取指定有序集合中指定分數區間的元素
zrangebyscore key min max

獲取指定有序集合中所有元素的個數
zcard key

獲取指定有序集合中分數在指定區間內的元素的個數
zcount key min max
獲取指定有序集合中指定元素的排名,排名從0開始,從小到大
zrank key member
獲取指定有序集合中指定元素的排名,排名從0開始,從大到小
zrevrank key member
獲取指定有序集合中指定元素的分數
zscore key member
3.洗掉zset有序集合中的資料
洗掉指定有序集合中一個或者多個元素
zrem key member member member
Redis組態檔
在redis根目錄下提供redis.conf組態檔,可以配置一些redis服務端運行時的一些引數,如果不使用組態檔,那么redis會按照默認的引數運行,如果使用組態檔,在啟動redis服務時必須指定所使用的組態檔,
1.組態檔中關于網路的配置
port:指定redis服務所使用的埠,默認使用6379
bind:配置客戶端連接redis服務時,所能使用的ip地址,默認可以使用redis服務所在主機上任何一個ip都可以,一般情況下,都會配置一個ip,而且通常是一個真實的ip,
如果配置了port和bind,則客戶端連接redis服務時,必須指定埠和ip
連接:redis-cli -h 192.168.11.128 -p 6380
關閉:redis-cli -h 192.168.11.128 -p 6380 shutdown
tcp-keepalive:連接保活策略
2.常規配置
loglevel:配置日志級別,開發階段可以設定成debug,生產階段通常設定為notice或者warning
logfile:指定日志檔案,redis在運行程序中,會輸出一些日志資訊,默認情況下,這些日志資訊會輸出到控制臺,我們可以使用logfile配置日志檔案,使redis把日志資訊輸出到指定檔案中
databases:配置redis服務默認創建的資料庫實體個數,默認值是16,
Redis持久化
redis是記憶體資料庫,它把資料存盤在記憶體中,這樣在加快讀取速度的同時也對資料安全性產生了新的問題,即當redis所在服務器發生宕機后,redis資料庫里的所有資料將會全部丟失,為了解決這個問題,redis提供了持久化功能——RDB和AOF
redis提供持久化策略,在適當的時機采用適當的手段把記憶體中的資料持久化到磁盤中,每次redis服務啟動時,都可以把磁盤上的資料再次加載到記憶體中使用,
1.RDB策略
RDB策略:在指定時間間隔內,redis服務執行指定次數的寫操作,會自動觸發一次持久化操作,默認策略是:1分鐘內改變了1萬次,或者5分鐘內改變了10次,
RDB策略是redis默認的持久化策略,redis服務開啟時這種持久化策略就已經默認開啟了,
save:配置持久化策略
dbfilename:配置redis RDB持久化資料存盤的檔案
dir:配置redis RDB持久化檔案所在目錄
2.AOF策略
AOF策略:采用操作日志來記錄進行每一次寫操作,每次redis服務啟動時,都會重新執行一遍操作日志中的指令,效率低,redis默認不開啟,
appendonly:配置是否開啟AOF策略
appendfilename:配置操作日志檔案
小結:根據資料的特點決定開啟哪種持久化策略,一般情況,開啟RDB足夠了,
第十三章 Redis中的事務
事務:把一組資料放在一起執行,保證操作原子性,要么同時成功,要么同時失敗,
Redis的事務:允許把一組redis命令放在一起,把命令進行序列化,然后一起執行,保證部分原子性
用來標記一個事務的開啟
multi
用來執行事務列隊中所有命令
exec
redis的事務只能保證部分原子性
-
如果一組命令中,有在壓入事務佇列程序中發生錯誤的命令,則本事務中所有的命令都不執行,能夠保證事務的原子性,
-
如果一組命令中,在壓入列隊程序中正常,但是在執行事務列隊命令時發生了錯誤,則只會影響發生錯誤的命令,不會影響其他命令的執行,不能夠保證事務的原子性,
清除所有已經壓入佇列中的命令,并且結束整個事務,
discard
監控某一個鍵,當事務在執行程序中,此鍵代碼的值發生變化,則本事務放棄執行,否則,正常執行,
watch key
放棄監控所有的鍵
unwatch
SpringBoot集成Redis
- 加入相關依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 在springboot核心組態檔application.propeties中配置redis連接資訊:
spring:
redis:
port: 6380
host: 192.168.226.128
- springBoot自動配置RedisTemplate,在需要操作redis的類中注入redisTemplate;
//注入springboot自動配置好的RedisTemplate,泛型里面只能寫<String,String>,<Object,Object>
@Autowired
private RedisTemplate<Object,Object> redisTemplate;
- 測驗
@Test
void redisTest(){
//字符出序列化器
RedisSerializer redisSerializer=new StringRedisSerializer();
redisTemplate.setKeySerializer(redisSerializer);
//查詢快取
List<User> userList= (List<User>) redisTemplate.opsForValue().get("allUser");
if (null==userList){
//快取為空,查詢一遍資料庫
userList=userMapper.selectList(null);
//把資料庫查詢出來的資料,放入redis中
redisTemplate.opsForValue().set("allUser",userList);
}
userList.forEach(System.out::println)
}
到此整個redis基礎就全部整理完畢了,1024祝愿大家節日快樂🌹
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336284.html
標籤:其他
上一篇:惹惱開源社區!微軟道歉:恢復 .NET SDK 熱多載功能
下一篇:人口分析案例
