小白的學習筆記——Redis的簡單使用

superNeumann發表於2024-02-27

Redis是什麼?

不同於MySql,MySql是基於二維表儲存資料,而Redis是一個基於記憶體的key-value鍵值對結構資料庫

我們為什麼要用Redis?

  1. 基於記憶體儲存,讀寫性很高
  2. 適合儲存熱點資料,(熱點商品,資訊,新聞)
  3. 企業應用廣泛

Redis是對MySql的補充,與其共存,大部分資料放在MySql中。

Redis官網:https:/redis.io

cmd中,我們啟動Redis的命令為:redis-server.exe redis.windows.conf
Redis服務啟動後,預設佔用埠號6379,如果要停止服務可以使用快捷鍵CTRL+C。

啟動服務後,連線客戶端預設不要密碼,也可以在配置檔案redis.windows.conf中修改密碼

redis.windows.conf檔案中找到# requirepass foobared一行
刪除# ,在requirepass後指定自己的密碼
樣式:requirepass 123456注意有一個空格
這樣,連線客戶端時,我們就需要提供修改後的密碼

連線客戶端用redis-cli.exe命令,也可以在後面加上-h和-p來指定地址和埠
-a用來指定密碼

Redis儲存的是key-value結構的資料,其中key是字串型別,value有5種常見型別:

——字串string 普通字串,Redis中最簡單的資料型別

——雜湊 hash 也叫雜湊,類似於Java中的HashMap結構

——列表 list 按照插入順序排序,可以有重複元素,類似於Java中的LinkedList

——集合 set 無序集合,沒有重複元素,類似於Java中的HashSet

——有序集合 sorted set / zset 集合中每個元素關聯一個分數(score),根據分數升序排序,沒有重複元素

字串操作命令:

Redis 字串型別常用命令:

  • SET key value 設定指定key的值
  • GET key 獲取指定key的值
  • SETEX key seconds value 設定指定key的值,並將 key 的過期時間設為 seconds 秒
  • SETNX key value 只有在 key 不存在時設定 key 的值

雜湊操作命令:

Redis hash 是一個string型別的 field 和 value 的對映表,hash特別適合用於儲存物件,常用命令:

  • HSET key field value 將雜湊表 key 中的欄位 field 的值設為 value
  • HGET key field 獲取儲存在雜湊表中指定欄位的值
  • HDEL key field 刪除儲存在雜湊表中的指定欄位
  • HKEYS key 獲取雜湊表中所有欄位
  • HVALS key 獲取雜湊表中所有值

列表操作命令:

Redis 列表是簡單的字串列表,按照插入順序排序,常用命令:

  • LPUSH key value1 [value2] 將一個或多個值插入到列表頭部(左邊)
  • LRANGE key start stop 獲取列表指定範圍內的元素
  • RPOP key 移除並獲取列表最後一個元素(右邊)
  • LLEN key 獲取列表長度

集合操作命令:

Redis set 是string型別的無序集合。集合成員是唯一的,集合中不能出現重複的資料,常用命令:

  • SADD key member1 [member2] 向集合新增一個或多個成員
  • SMEMBERS key 返回集合中的所有成員
  • SCARD key 獲取集合的成員數
  • SINTER key1 [key2] 返回給定所有集合的交集
  • SUNION key1 [key2] 返回所有給定集合的並集
  • SREM key member1 [member2] 刪除集合中一個或多個成員

有序集合操作命令:

Redis有序集合是string型別元素的集合,且不允許有重複成員。每個元素都會關聯一個double型別的分數。常用命令:

  • ZADD key score1 member1 [score2 member2] 向有序集合新增一個或多個成員
  • ZRANGE key start stop [WITHSCORES] 透過索引區間返回有序集合中指定區間內的成員
  • ZINCRBY key increment member 有序集合中對指定成員的分數加上增量 increment
  • ZREM key member [member ...] 移除有序集合中的一個或多個成員

通用命令:
Redis的通用命令是不分資料型別的,都可以使用的命令:

  • KEYS pattern 查詢所有符合給定模式( pattern)的 key
  • EXISTS key 檢查給定 key 是否存在
  • TYPE key 返回 key 所儲存的值的型別
  • DEL key 該命令用於在 key 存在是刪除 key

Spring Data Redis使用方式

操作步驟:
1.在pom檔案中匯入Spring Data Redis 的maven座標

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

2.在application.yml檔案中配置Redis資料來源

spring:
  redis:
    host: localhost
    port: 6379
    password: 123456

3.編寫配置類,建立RedisTemplate物件

點選檢視程式碼
@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
        log.info("開始建立redis模板類...");
        RedisTemplate redisTemplate = new RedisTemplate();
        // 設定Key的序列化器,預設為JdkSerializationRedisSerializer
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        return redisTemplate;
    }

}

4.透過RedisTemplate物件操作Redis

RedisTemplate 針對大量api進行了歸類封裝,將同一資料型別的操作封裝為對應的Operation介面,具體分類如下:

  • ValueOperations:string資料操作
  • SetOperations:set型別資料操作
  • ZSetOperations:zset型別資料操作
  • HashOperations:hash型別的資料操作
  • ListOperations:list型別的資料操作

相關文章