共計 4565 個字符,預計需要花費 12 分鐘才能閱讀完成。
打好 Redis 的基礎需要學習哪些常用命令,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、背景介紹
Redis 是一個開源的,先進的 key-value 存儲。它通常被稱為數據結構服務器,因為鍵可以包含字符串、哈希、鏈表、集合與有序集合,而且支持各種不同方式的排序,所以命令比較豐富,很容易混淆。
二、Redis 常用命令
1、工具命令
1)、redis-server
啟動 redis 服務進程的工具命令
#指定配置文件啟動服務 redis-server redis.conf # 指定端口啟動服務 redis-server --port 6379
2)、redis-cli
redis 客戶端工具
#使用 socket 連接 redis 服務器 redis-cli -s /tmp/redis.sock # 不使用 socket 連接 redis 服務器 redis-cli
3)、redis-benchmark
redis 的性能測試工具
#使用默認參數測試 redis-benchmark # 自定義參數測試 redis-benchmark -n 1000000 --csv
4)、redis-check-dump
redis 檢查修復本地數據文件工具
# redis-check-dump dump.rdb
5)、redis-check-aof
redis 檢查修復 AOF 日志文件工具
# redis-check-aof appendonly.aof
6)、redis-sentinel
redis 集群管理工具
2、通用命令
auth Redis 認證命令,執行其他命令前,必須先進行認證 (前提是在配置文件中設置了認證參數)
ping 測試客戶端和服務器之間的聯通,返回值為 PONG, 表示聯通
config get * 獲取所有配置參數
config set config_name config_value 設置配置參數值
info 返回服務器信息
exist 查看當前庫中是否存在某個 key
ttl 獲取鍵的有效時長
expire 設置鍵的過期時間
persist key_name 移除某個鍵的過期時間
del 刪除某個鍵
select n 切換到 n 的數據庫,redis 默認的數據庫是 0 -15,共 16 個數據庫
move key_name n 將當前庫的鍵移動到其他數據庫
type key_name 返回鍵的數據類型
dbsize 獲取當前庫中所有鍵的數量
key * 獲取當前所有 key(當鍵數量多是,會 hang 死,慎用)
flushdb 刪除當前庫中的所有 key
flushall 刪除所有庫中的所有 key
save 創建當前庫的備份
bgsave 同 save, 但是是后臺備份,不阻塞主進程
eval 執行 lua 腳本
3、類型相關命令
1)、STRING
set 添加鍵值對,多次設置會覆蓋原來的值
get 獲取鍵的值
incr/decr 自增 / 自減 (前提是鍵值是整型)
incrby/decrby 指定步長增加減少 (q 前提是鍵值是整型)
strlen 獲取鍵的長度
append 向指定鍵追加值,返回字符串長度
setnx 判斷鍵是否存在,存在返回 0,否則返回 1,不會覆蓋原來值
getrange 根據指定下標獲取鍵的值
Demo:
127.0.0.1:6379 get number 20 127.0.0.1:6379 incr number (integer) 21 127.0.0.1:6379 decr number (integer) 20 127.0.0.1:6379 incrby number 5 (integer) 25 127.0.0.1:6379 append number hello (integer) 7 127.0.0.1:6379 strlen number (integer) 7 127.0.0.1:6379 setnx number hello (integer) 0 127.0.0.1:6379 getrange number 0 5 25hell
2)、LISTS
lpush 在列表前面添加一個或多個值
rpush 在列表后面添加一個或多個值
lrange 根據指定下標獲取列表中的元素
lpop 獲取并取出列表中的 *** 個元素
llen 獲取列表長度
Demo:
127.0.0.1:6379 lpush mylists apple orange pear (integer) 3 127.0.0.1:6379 llen mylists (integer) 3 127.0.0.1:6379 lrange mylists 0 -1 1) pear 2) orange 3) apple 127.0.0.1:6379 rpush mylists banana (integer) 4 127.0.0.1:6379 lrange mylists 0 -1 1) pear 2) orange 3) apple 4) banana 127.0.0.1:6379 lpop mylists pear 127.0.0.1:6379 lset mylists 0 four OK 127.0.0.1:6379 lrange mylists 0 -1 1) four 2) apple 3) banana
3)、SETS
sadd 向集合中添加值
smembers 查看集合中的值
sismember 判斷某元素是否是集合中元素
sunion 返回兩個集合中的并集
sdiff 返回兩個集合中的差集(將寫在前面的集合作為參照)
sinter 返回兩個集合中的交集
scard 返回集合中元素個數
srem 刪除集合中指定值
Demo:
127.0.0.1:6379 sadd myset one two three (integer) 3 127.0.0.1:6379 sadd myset1 two redis mysql (integer) 3 127.0.0.1:6379 smembers myset 1) three 2) two 3) one 127.0.0.1:6379 smembers myset1 1) two 2) mysql 3) redis 127.0.0.1:6379 sdiff myset myset1 1) three 2) one 127.0.0.1:6379 sinter myset myset1 1) two 127.0.0.1:6379 sunion myset myset1 1) two 2) three 3) mysql 4) one 5) redis 127.0.0.1:6379 scard myset (integer) 3 127.0.0.1:6379 sismember myset redis (integer) 0 127.0.0.1:6379 srem myset two (integer) 1 127.0.0.1:6379 smembers myset 1) three 2) one
4)、SORTED SETS
zadd 將鍵插入有序集合,并指定順序
zrange 取出指定順序的元素
zscore 返回集合中的順序
zcount 返回集合中 score 在給定區間的數量
zrem 刪除集合中指定元素
zrank 返回名稱 key 中原素的排名
Demo:
127.0.0.1:6379 zadd sset 1 one 2 two 3 three (integer) 3 127.0.0.1:6379 zadd sset 3 three (integer) 0 127.0.0.1:6379 zrange sset 0 -1 withscores 1) one 2) 1 3) two 4) 2 5) three 6) 3 127.0.0.1:6379 zrank sset one (integer) 0 127.0.0.1:6379 zrank sset two (integer) 1 127.0.0.1:6379 zcard sset (integer) 3 127.0.0.1:6379 zincrby sset 2 two 4 127.0.0.1:6379 zrange sset 0 -1 withscores 1) one 2) 1 3) three 4) 3 5) two 6) 4 127.0.0.1:6379 zrem sset three (integer) 1 127.0.0.1:6379 zrange sset 0 -1 withscores 1) one 2) 1 3) two 4) 4
5)、HASHES
hset 返回 hash 域為指定值,如果 key 不存在,則先創建
hget 獲取 hash 域中指定的 key 值
hmset 同時批量設置多個域
hincrby 指定 hash 域加上給定的值
hexists 指定 field 是否存在,存在返回 1,否則返回 2
hlen 返回指定 hash 表中 field 中的數量
Demo:
127.0.0.1:6379 hset user name jack (integer) 1 127.0.0.1:6379 hget user name jack 127.0.0.1:6379 hsetnx user name jack (integer) 0 127.0.0.1:6379 hmset user1 name bob sex man age 11 OK 127.0.0.1:6379 hmget user1 name sex age 1) bob 2) man 3) 11 127.0.0.1:6379 hexists user1 score (integer) 0 127.0.0.1:6379 hlen user1 (integer) 3 127.0.0.1:6379 hincrby user1 age 5 (integer) 16 127.0.0.1:6379 hkeys user1 1) name 2) sex 3) age 127.0.0.1:6379 hdel user1 sex (integer) 1 127.0.0.1:6379 hgetall user1 1) name 2) bob 3) age 4) 16
4、其他命令
1)、事務
multi 開啟一個事務
exec 執行事務
discard 撤銷事務
watch 監視數據庫鍵,若發生改變,返回空
Demo:
127.0.0.1:6379 watch csdn OK 127.0.0.1:6379 multi OK 127.0.0.1:6379 set csdn blob QUEUED 127.0.0.1:6379 get csdn QUEUED 127.0.0.1:6379 exec 1) OK 2) blob
2)、復制
info replication 獲取復制信息
slaveof 建立復制關系
sync 同步
3)、訂閱發布
subscribe 訂閱一個或多個頻道
publish 向某一頻道發送信息
關于打好 Redis 的基礎需要學習哪些常用命令問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。