第六章 Redis
- 官方下載地址:動力節點官網
- 視頻觀看地址
https://www.bilibili.com/video/BV1XQ4y1m7ex
- Redis : 一個NoSQL資料庫, 常用作快取使用 (cache)
- Redis的資料型別: string , hash ,set ,zset , list
- Redis是一個中間件: 是一個獨立的服務器,
- java中著名的客戶端: Jedis , lettuce , Redisson
- Spring,SpringBoot中有 一個RedisTemplate(StringRedisTemplate) ,處理和redis互動
6.1 配置Windows版本的redis
Redis-x64-3.2.100.rar 解壓縮到一個非中文的目錄
redis-server.exe:服務端, 啟動后,不要關閉
redis-cli.exe:客戶端, 訪問redis中的資料
redisclient-win32.x86_64.2.0.jar : Redis圖形界面客戶端
執行方式: 在這個檔案所在的目錄, 執行 java -jar redisclient-win32.x86_64.2.0.jar
RedisTemplate 使用的 lettuce 客戶端庫
<!--redis起步依賴: 直接在專案中使用RedisTemplate(StringRedisTemplate)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
data-redis使用的 lettuce 客戶端庫
在程式中使用RedisTemplate類的方法 操作redis資料, 實際就是呼叫的lettuce 客戶端的中的方法
6.2 對比 StringRedisTemplate 和 RedisTemplate
- StringRedisTemplate : 把k,v 都是作為String處理, 使用的是String的序列化 , 可讀性好
- RedisTemplate : 把k,v 經過了序列化存到redis, k,v 是序列化的內容, 不能直接識別.
默認使用的jdk序列化, 可以修改為前提的序列化
- 序列化:把物件轉化為可傳輸的位元組序列程序稱為序列化,
- 反序列化:把位元組序列還原為物件的程序稱為反序列化,
為什么需要序列化?
序列化最終的目的是為了物件可以跨平臺存盤,和進行網路傳輸,而我們進行跨平臺存盤和網路傳輸的方式就是IO,而我們的IO支持的資料格式就是位元組陣列,我們必須在把物件轉成位元組陣列的時候就制定一種規則(序列化),那么我們從IO流里面讀出資料的時候再以這種規則把物件還原回來(反序列化),
什么情況下需要序列化?
通過上面我想你已經知道了凡是需要進行“跨平臺存盤”和”網路傳輸”的資料,都需要進行序列化,
本質上存盤和網路傳輸 都需要經過 把一個物件狀態保存成一種跨平臺識別的位元組格式,然后其他的平臺才可以通過位元組資訊決議還原物件資訊,
序列化的方式
序列化只是一種拆裝組裝物件的規則,那么這種規則肯定也可能有多種多樣,比如現在常見的序列化方式有:
- JDK(不支持跨語言)、JSON、XML、Hessian、Kryo(不支持跨語言)、Thrift、Protofbuff、
- Student( name=zs, age=20) ---- { “name”:“zs”, “age”:20 }
- java的序列化: 把java物件轉為byte[], 二進制資料
- json序列化:json序列化功能將物件轉換為 JSON 格式或從 JSON 格式轉換物件,例如把一個Student物件轉換為JSON字串{“name”:“李四”, “age”:29} ),反序列化(將JSON字串 {“name”:“李四”, “age”:29} 轉換為Student物件)
設定key或者value的序列化方式
// 使用RedisTemplate ,在存取值之前,設定序列化 // 設定 key 使用String的序列化 redisTemplate.setKeySerializer( new StringRedisSerializer()); // 設定 value 的序列化 redisTemplate.setValueSerializer( new StringRedisSerializer()); redisTemplate.opsForValue().set(k,v);
?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/423538.html
標籤:其他
上一篇:引數校驗別再寫滿屏的 if/else 了,差點被勸退……
下一篇:atomic 原子自增工程案例
