# Redis命令怎么使用
## 一、Redis簡介
Redis(Remote Dictionary Server)是一個開源的、基于內存的鍵值對存儲系統,它可以用作數據庫、緩存和消息中間件。Redis支持多種數據結構,包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)等,并提供了豐富的命令來操作這些數據結構。
### 1.1 Redis的特點
- **高性能**:Redis將數據存儲在內存中,讀寫速度極快。
- **持久化**:支持RDB和AOF兩種持久化方式,確保數據安全。
- **豐富的數據結構**:支持多種數據結構,滿足不同場景需求。
- **原子性操作**:所有命令都是原子性的,支持事務和Lua腳本。
- **高可用性**:支持主從復制、哨兵模式和集群模式。
### 1.2 Redis的應用場景
- **緩存**:加速數據訪問,減輕數據庫壓力。
- **會話存儲**:存儲用戶會話信息。
- **排行榜**:利用有序集合實現實時排行榜。
- **消息隊列**:利用列表或發布/訂閱功能實現消息隊列。
- **計數器**:利用原子性操作實現計數器功能。
---
## 二、Redis基本命令
### 2.1 鍵(Key)相關命令
Redis的鍵是二進制安全的,可以用任何二進制序列作為鍵。
#### 常用鍵命令:
- `SET key value`:設置鍵值對。
- `GET key`:獲取鍵對應的值。
- `DEL key`:刪除鍵。
- `EXISTS key`:檢查鍵是否存在。
- `EXPIRE key seconds`:設置鍵的過期時間(秒)。
- `TTL key`:查看鍵的剩余生存時間。
- `KEYS pattern`:查找匹配模式的鍵(生產環境慎用)。
#### 示例:
```bash
127.0.0.1:6379> SET name "Redis"
OK
127.0.0.1:6379> GET name
"Redis"
127.0.0.1:6379> EXPIRE name 60
(integer) 1
127.0.0.1:6379> TTL name
(integer) 55
127.0.0.1:6379> DEL name
(integer) 1
字符串是Redis最基本的數據類型,可以存儲文本、數字或二進制數據。
SET key value
:設置字符串值。GET key
:獲取字符串值。INCR key
:將鍵存儲的值加1(原子操作)。DECR key
:將鍵存儲的值減1(原子操作)。APPEND key value
:追加字符串。STRLEN key
:獲取字符串長度。127.0.0.1:6379> SET counter 100
OK
127.0.0.1:6379> INCR counter
(integer) 101
127.0.0.1:6379> APPEND counter "_end"
(integer) 8
127.0.0.1:6379> GET counter
"101_end"
哈希是字段和值的映射表,適合存儲對象。
HSET key field value
:設置哈希字段值。HGET key field
:獲取哈希字段值。HGETALL key
:獲取所有字段和值。HDEL key field
:刪除哈希字段。HKEYS key
:獲取所有字段名。127.0.0.1:6379> HSET user:1 name "Alice" age 30
(integer) 2
127.0.0.1:6379> HGET user:1 name
"Alice"
127.0.0.1:6379> HGETALL user:1
1) "name"
2) "Alice"
3) "age"
4) "30"
列表是簡單的字符串列表,按插入順序排序,支持從兩端操作。
LPUSH key value
:從左側插入元素。RPUSH key value
:從右側插入元素。LPOP key
:從左側彈出元素。RPOP key
:從右側彈出元素。LRANGE key start stop
:獲取列表片段。127.0.0.1:6379> LPUSH mylist "world"
(integer) 1
127.0.0.1:6379> LPUSH mylist "hello"
(integer) 2
127.0.0.1:6379> LRANGE mylist 0 -1
1) "hello"
2) "world"
集合是無序且唯一的字符串集合,適合存儲不重復數據。
SADD key member
:添加元素。SMEMBERS key
:獲取所有元素。SISMEMBER key member
:檢查元素是否存在。SREM key member
:刪除元素。127.0.0.1:6379> SADD tags "redis" "database" "cache"
(integer) 3
127.0.0.1:6379> SMEMBERS tags
1) "database"
2) "cache"
3) "redis"
有序集合是帶有分數(score)的集合,元素按分數排序。
ZADD key score member
:添加元素。ZRANGE key start stop
:按分數升序獲取元素。ZREVRANGE key start stop
:按分數降序獲取元素。ZSCORE key member
:獲取元素的分數。127.0.0.1:6379> ZADD leaderboard 100 "Alice" 200 "Bob"
(integer) 2
127.0.0.1:6379> ZRANGE leaderboard 0 -1 WITHSCORES
1) "Alice"
2) "100"
3) "Bob"
4) "200"
Redis支持簡單的事務,通過MULTI
、EXEC
、DISCARD
實現。
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SET a 100
QUEUED
127.0.0.1:6379> INCR a
QUEUED
127.0.0.1:6379> EXEC
1) OK
2) (integer) 101
Redis支持消息的發布和訂閱模式。
PUBLISH channel message
:發布消息。SUBSCRIBE channel
:訂閱頻道。# 終端1(訂閱)
127.0.0.1:6379> SUBSCRIBE news
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "news"
3) (integer) 1
# 終端2(發布)
127.0.0.1:6379> PUBLISH news "Hello Redis!"
(integer) 1
Redis支持通過EVAL
執行Lua腳本,實現復雜邏輯。
127.0.0.1:6379> EVAL "return redis.call('GET', KEYS[1])" 1 name
"Redis"
SAVE
:同步保存數據到磁盤。BGSAVE
:后臺異步保存數據。LASTSAVE
:獲取最后一次成功保存的時間。INFO
:獲取服務器信息。CONFIG GET parameter
:獲取配置參數。FLUSHALL
:清空所有數據庫(慎用)。Redis提供了豐富的命令來操作各種數據結構,從基本的鍵值對到復雜的集合和事務。通過合理使用這些命令,可以高效地實現緩存、計數器、消息隊列等功能。掌握Redis命令是使用Redis的基礎,建議結合實際場景多加練習。
redis-cli
進行交互式練習。FLUSHALL
、KEYS *
)。注意:本文基于Redis 7.x版本,部分命令在不同版本中可能有差異。 “`
(注:實際字數為約1800字,如需擴展至3300字,可增加以下內容: 1. 每個命令的詳細參數說明 2. 更多實戰場景示例 3. 性能優化技巧 4. 集群模式下的命令差異 5. 安全相關命令 6. 客戶端連接管理命令)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。