Redis教程

crazybuddha發表於2024-10-13

(原創)Redis教程😄


1.定義與特性

基於記憶體的key-value結構資料庫。(key是字串型別,value有五種常用的資料型別)

redis是單執行緒的,但是因為是基於記憶體的,所以讀寫速度非常快。
redis支援持久化,可以將記憶體中的資料持久化到硬碟上。
redis支援主從複製,可以實現資料的備份和負載均衡。
redis支援事務,可以保證資料的一致性。
redis支援釋出/訂閱,可以實現訊息的實時推送。
redis支援Lua指令碼,可以實現複雜的業務邏輯。
redis支援多種程式語言的客戶端,如java、python、php等。

不區分大小寫。

2.五種常用的資料型別

  1. String(字串)
  2. Hash(雜湊,類似java的hashmap)
  3. List(列表,可以有重複元素,類似java的linkedlist)
  4. Set(集合,沒有重複元素,類似java的hashset)
  5. ZSet/soorted set(有序集合,沒有重複元素,每個元素對應一個分數,根據分數升序排序)

3.常用命令

1. 字串操作命令

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

2. 雜湊操作命令

HSET key field value 設定指定key的field欄位的value值
HGET key field 獲取指定key的field欄位的value值 
HDEL key field 刪除指定key的field欄位
HKEYS key 獲取指定key的所有field欄位
HVALS key 獲取指定key的所有value值

3. 列表操作命令

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

4. 集合操作命令

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

5. 有序集合操作命令

ZADD key score member 新增一個或多個成員,或者更新已存在成員的分數
ZRANGE key start stop [WITHSCORES] 獲取有序集合中指定範圍內的成員 //預設升序排列
ZREM key member 移除有序集合中的一個或多個成員
ZCARD key 獲取有序集合中成員的個數
ZSCORE key member 獲取有序集合中指定成員的分數
ZINCRBY key increment member 有序集合中指定成員的分數增加increment

6. 通用命令

KEYS pattern 查詢所有符合給定模式pattern的key
EXISTS key 檢查給定key是否存在 //1表示存在,0表示不存在
DEL key 刪除指定key
TTL key 獲取指定key的過期時間(秒)
PERSIST key 移除指定key的過期時間,使其成為永久key
TYPE key 獲取指定key的資料型別

相關文章