文章目錄
- 前言
- 一、啟動Redis并進入客戶端
- 1. 啟動Redis
- 2. 進入Redis客戶端
- 3. 使用IDEA連接Redis
- 二、查看命令幫助信息
- 1. 查看所有命令
- 2. 查看指定命令幫助
- 三、鍵操作命令
- 1. set命令
- 2. mset命令
- 3. keys命令
- 4. get命令
- 5. mget命令
- 6. dump命令
- 7. exists命令
- 8. type命令
- 9. rename命令
- 10. expire命令
- 11. ttl命令
- 12. persist命令
- 13. del命令
- 四、字符串操作命令
- 1. set命令
- 2. mset命令
- 3. get命令
- 4. mget命令
- 5. getset命令
- 6. strlen命令
- 7. getrange命令
- 8. setrange命令
- 9. append命令
- 五、列表操作命令
- 1. rpush命令
- 2. lpush命令
- 3. lrange命令
- 4. lindex命令
- 5. rpop命令
- 6. lpop命令
- 7. llen命令
- 8. lrem命令
- 六、集合操作命令
- 1. sadd命令
- 2. scard命令
- 3. smembers命令
- 4. sismember命令
- 5. srem命令
- 6. smove命令
- 七、哈希表操作命令
- 1. hset命令
- 2. hmset命令
- 3. hget命令
- 4. hmget命令
- 5. hgetall命令
- 6. hkeys命令
- 6. hkeys命令
- 7. hdel命令
- 八、有序集合操作命令
- 1. zadd命令
- 2. zcard命令
- 3. zcount命令
- 4. zrange命令
- 5. zscore命令
- 6. zrem命令
前言
在當今數據驅動的應用開發領域,高效的數據存儲與管理至關重要。Redis,作為一款高性能的鍵值對存儲數據庫,以其出色的性能、豐富的數據結構和廣泛的應用場景,成為了眾多開發者構建強大應用的得力工具。
無論是緩存數據以加速應用響應,還是處理實時數據、實現分布式鎖,Redis 都能發揮關鍵作用。本教程旨在為初學者和有一定經驗的開發者,全面且系統地介紹 Redis 的基礎操作,助力讀者快速上手 Redis,開啟高效數據處理的大門。從 Redis 的啟動與客戶端連接,到各類命令的詳細講解,我們將逐步深入 Redis 的世界,探索其豐富功能,讓讀者在實踐中掌握 Redis 的核心用法,為實際項目開發奠定堅實基礎。
一、啟動Redis并進入客戶端
1. 啟動Redis
打開一個新的命令提示符窗口(cmd),執行如下命令啟動 Redis。
redis-server
啟動完成如下圖所示:
2. 進入Redis客戶端
打開一個新的命令提示符窗口(cmd),執行如下命令進入 Redis 客戶端。
redis-cli
如下圖所示:
3. 使用IDEA連接Redis
在idea中點擊數據庫圖標,點擊添加數據源,找到Redis選項并點擊,如下圖所示:
在添加Redis數據源頁面,輸入自定義的連接名稱、主機ip地址、選擇無身份驗證、選擇使用的數據庫編號為0、點擊測試連接,測試成功后依次點擊應用和確定。
二、查看命令幫助信息
1. 查看所有命令
command
2. 查看指定命令幫助
查看指定命令的幫助信息語法如下:
help <命令>
示例:查看set命令的幫助信息。
help set
三、鍵操作命令
1. set命令
set命令用于為指定鍵設置值,鍵不存在時為新增操作,鍵存在時為更新操作,語法如下:
set <key> <value>
示例:給school鍵設置值為dy。
set school dy
2. mset命令
mset命令用于為多個指定鍵設置值,鍵不存在時為新增操作,鍵存在時為更新操作,語法如下:
mset <key1> <value1> <key2> <value2> ...
示例:給k1鍵設置值為v1,k2鍵設置值為v2,k3鍵設置值為v3。
mset k1 'v1' k2 'v2' k3 'v3'
3. keys命令
keys命令用于查找所有符合給定模式的鍵,語法如下:
keys <pattern>
示例1:查看所有鍵。
keys *
示例2:查看所有以k開頭的鍵。
keys k*
4. get命令
get命令用于獲取指定鍵的值,語法如下:
get <key>
示例:查看scool鍵的值。
get school
5. mget命令
mget命令用于獲取多個指定鍵的值,語法如下:
mget <key1> <key2> ...
示例:查看k1、k2、k3鍵的值。
mget k1 k2 k3
6. dump命令
dump命令用于返回存儲在指定鍵處的值的序列化版本,語法如下:
dump <key>
示例:查看k1鍵的值的序列化版本。
dump k1
7. exists命令
exists命令用于確定一個或多個鍵是否存在,語法如下:
exists <key1> <key2> ...
示例1:查看school鍵是否存在。
exists school
示例2:查看k1、k2、k3、k4、k5鍵是否存在。
exists k1 k2 k3 k4 k5
8. type命令
type命令用于查看存儲在指定鍵處的值的類型,語法如下:
type <key>
示例:查看school鍵的值的類型。
type school
9. rename命令
rename命令用于重命名一個鍵,語法如下:
rename <key> <new_key>
示例:把school鍵重命名為new_school鍵。
rename school new_school
10. expire命令
expire命令用于設置鍵的生存時間(以秒為單位),語法如下:
expire <key> <seconds>
示例:把k3鍵的生存時間設置為600秒。
expire k3 600
11. ttl命令
ttl命令用于獲取一個鍵的剩余存活時間,語法如下:
ttl <key>
示例:查看k3鍵的剩余存活時間。
ttl k3
12. persist命令
persist命令用于刪除指定鍵的存活時間(把鍵設置為一直存在),語法如下:
persist <key>
示例:刪除k3鍵的存活時間。
persist k3
13. del命令
del命令用于刪除一個或多個指定鍵,語法如下:
del <key1> <key2> ...
示例1:刪除school鍵。
del school
示例2:刪除k1、k2、k3鍵。
del k1 k2 k3
四、字符串操作命令
1. set命令
示例:給字符串鍵str1
設置值為value1
。
set str1 value1
2. mset命令
示例:給字符串鍵str2
、str3
、str4
分別設置值為value2
、value3
、value4
。
mset str2 value2 str3 value3 str4 value4
3. get命令
示例:獲取字符串鍵str1
的值。
get str1
4. mget命令
示例:獲取字符串鍵str2
、str3
、str4
的值。
mget str2 str3 str4
5. getset命令
getset命令用于獲取指定字符串鍵的舊值并設置新值,語法如下:
getset <key> <value>
示例:獲取字符串鍵str1
的舊值,并設置新值為new_value1
。
getset str1 new_value1
查看設置后的新值。
get str1
6. strlen命令
strlen命令用于獲取指定字符串鍵的值得長度,語法如下:
strlen <key>
示例:獲取字符串鍵str1
的值的長度。
strlen str1
7. getrange命令
getrange命令用于根據索引范圍獲取指定字符串鍵的值的內容,語法如下:
getrange <key> <start> <end>
示例:獲取字符串鍵str1
的索引0-5的值的內容。
getrange str1 0 5
8. setrange命令
setrange命令用于覆蓋從指定偏移量開始的鍵處字符串的一部分內容,語法如下:
setrange <key> <offset> <value>
示例:把字符串鍵str1
從索引2開始的后面三個字母的內容替換為aaa。
setrange str1 2 aaa
查看設置后的新值。
get str1
9. append命令
append命令用于向指定鍵的值的末尾追加內容,語法如下:
append <key> <value>
示例:向字符串鍵str1
的結尾追加內容bbb
。
append str1 bbb
查看追加后的新值。
get str1
五、列表操作命令
1. rpush命令
rpush命令用于在列表右端向列表追加一個或多個值,語法如下:
rpush <key> <value1> <value2> ...
示例:在列表右端向列表color中添加多個值。
rpush color blue green purple red white
2. lpush命令
lpush命令用于在列表左端向列表追加一個或多個值,語法如下:
lpush <key> <value1> <value2> ...
示例:在列表左端向列表color中添加多個值。
lpush color blue2 green2 purple2 red2 white2
3. lrange命令
lrange命令用于獲取一個列表中指定范圍內的元素,語法如下:
lrange <key> <start> <stop>
示例1:獲取列表color中索引0-5的元素。
lrange color 0 5
示例2:獲取列表color中的所有元素。
lrange color 0 -1
4. lindex命令
lindex命令用于根據指定索引獲取列表中的一個元素,語法如下:
lindex <key> <index>
示例:獲取列表color中索引為2的元素。
lindex color 2
5. rpop命令
rpop命令用于移除并獲取列表中的最后一個(最右端)元素,語法如下:
rpop <key>
示例:移除并獲取列表color中的最后一個(最右端)元素。
rpop color
6. lpop命令
lpop命令用于移除并獲取列表中的第一個(最左端)元素,語法如下:
lpop <key>
示例:移除并獲取列表color中的第一個(最左端)元素。
lpop color
7. llen命令
llen命令用于根據指定列表鍵獲取列表長度,語法如下:
llen <key>
示例:獲取列表color的長度。
llen color
8. lrem命令
lrem命令用于從列表中移除元素,語法如下:
lrem <key> <count> <value>
示例1:從列表開頭開始搜索移除列表color中1個red元素。
lrem color 1 red
示例2:從列表結尾開始搜索移除列表color中3個blue元素。
lrem color -3 blue
示例3:移除列表color中所有個blue2元素。
lrem color 0 blue2
六、集合操作命令
1. sadd命令
sadd命令用于在集合中添加一個或多個成員,語法如下:
sadd <key> <member1> <member2> ...
示例:給集合鍵set1添加多個成員。
sadd set1 mem1 mem2 mem3
2. scard命令
scard命令用于獲取集合中成員的數量,語法如下:
scard <key>
示例:查看集合鍵set1中成員的數量。
scard set1
3. smembers命令
smembers命令用于獲取集合中所有成員,語法如下:
smembers <key>
示例:查看集合鍵set1中的所有成員。
smembers set1
4. sismember命令
sismember命令用于檢查成員是否在集合中,語法如下:
sismember <key> <member>
示例:檢查成員mem1是否在集合set1中。
sismember set1 mem1
5. srem命令
srem命令用于移除集合中一個或多個成員,語法如下:
srem <key> <member1> <member2> ...
示例:移除集合set1中成員mem3。
srem set1 mem3
6. smove命令
smove命令用于把一個集合中一個成員移動到另一個集合中,語法如下:
smove <source> <destination> <member>
示例:把集合set1中成員mem2移動到集合set2中。
smove set1 set2 mem2
七、哈希表操作命令
1. hset命令
hset命令用于在哈希表中給指定字段添加指定值,語法如下:
hset <key> <field> <value>
示例:給哈希表student添加一個學生信息。
hset student:1 name zhangsan
hset student:1 age 19
hset student:1 address yunnan
2. hmset命令
hmset命令用于在哈希表中給多個指定字段添加指定值,語法如下:
hmset <key> <field1> <value1> <field2> <value2> ...
示例:給哈希表student添加一個學生信息。
hmset student:2 name lisi age 20 address guizhou
3. hget命令
hget命令用于獲取一個hash字段的值,語法如下:
hget <key> <field>
示例:獲取hash鍵student:2中name字段的值。
hget student:2 name
4. hmget命令
hmget命令用于獲取多個hash字段的值,語法如下:
hmget <key> <field1> <field2> ...
示例:獲取hash鍵student:2中name、age和address字段的值。
hmget student:2 name age address
5. hgetall命令
hgetall命令用于獲取一個hash表中的所有字段和值,語法如下:
hgetall <key>
示例:獲取hash鍵student:2中的所有字段和值。
hgetall student:2
6. hkeys命令
hkeys命令用于獲取一個hash表中的所有字段,語法如下:
hkeys <key>
示例:獲取hash鍵student:2中的所有字段。
hkeys student:2
6. hkeys命令
hvals命令用于獲取一個hash表中的所有值,語法如下:
hvals <key>
示例:獲取hash鍵student:2中的所有值。
hvals student:2
7. hdel命令
hdel命令刪除一個或多個哈希字段,語法如下:
hdel <key> <field1> <field2> ...
示例:刪除hash鍵student:2中的age和address字段。
hdel student:2 age address
八、有序集合操作命令
1. zadd命令
zadd命令用于向一個排序集添加一個或多個成員,如果它已經存在,則更新它的分數,語法如下:
zadd <key> [NX|XX] [CH] [INCR] <score> <member> [<score> <member> ...]
[NX|XX]
- NX:僅在成員不存在時才添加。如果成員已經存在于集合中,則不會更新其分數。
- XX:僅在成員已存在時才更新其分數。如果成員不存在,則不會添加。
- 這兩個選項互斥,不能同時使用。
[CH]
- 默認情況下,
ZADD
返回的是新添加成員的數量。如果指定了CH
,則返回值變為被修改的成員總數(包括新增和更新分數的成員)。
[INCR]
- 將
ZADD
的行為從“設置分數”改為“增加分數”。即,指定成員的分數會加上給定的值(類似于ZINCRBY
命令)。 - 如果成員不存在,則默認分數為 0,然后加上給定的值。
- 注意:當使用
INCR
時,只能指定一個成員及其分數。
示例:給有序集合salary添加多個分數和成員。
zadd salary 5000 zhnagsan 4500 lisi 6000 wangwu
2. zcard命令
zcard命令用于獲取有序集合中成員的數量,語法如下:
zcard <key>
示例:獲取有序集合salary中的成員數量。
zcard salary
3. zcount命令
zcount命令用于計算分數在給定值內的有序集合中的成員數量,語法如下:
zcount <key> <min> <max>
示例:計算有序集合中分數在5000-6500之間的成員數量。
zcount salary 5000 6500
4. zrange命令
zrange命令用于按索范圍引返回已排序集合中的成員,語法如下:
zrange <key> <start> <stop> [WITHSCORES]
[WITHSCORES]:可選參數。如果指定了 WITHSCORES,則返回結果中會包含每個成員的分數。
示例:計算有序集合中分數在5000-6500之間的成員數量。
zrange salary 0 1
zrange salary 0 1 withscores
5. zscore命令
zscore命令用于獲取有序集合中給定成員相關聯的分數,語法如下:
zscore <key> <member>
示例:獲取有序集合salary中成員wangwu的分數。
zscore salary wangwu
6. zrem命令
zrem命令用于在有序集合中移除一個或多個成員,語法如下:
zrem <key> <member1> <member2> ...
示例:移除有序集合salary中成員wangwu。
zrem salary wangwu