Redis中的連接命令與鍵命令操作詳解
一、連接命令
ping
通常用于測試與服務器的連接是否仍然生效,或者用于測量延遲值。
如果連接正常就返回一個PONG ,否則返回一個連接錯誤。
127.0.0.1:6379> ping PONG
echo m
打印一個特定的信息 m ,測試時使用。
127.0.0.1:6379> echo 'hello world' "hello world"
select i
切換到指定的數據庫,數據庫索引號 i 用數字值指定,以 0 作為起始索引值。默認使用 0號數據庫。
127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]>
案例:
在0號數據庫中設置鍵a為‘hello world’,在1號數據庫中調用
127.0.0.1:6379> set a 'hello world' OK 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> get a (nil)
auth pword
開啟了密碼保護,在每次連接 Redis 服務器之后,就要使用auth命令解鎖,解鎖之后才能使用其他 Redis 命令。密碼匹配時返回 OK ,否則返回一個錯誤。
設置密碼
127.0.0.1:6379> config set requirepass redis123456 OK #requirepass的值就是密碼 127.0.0.1:6379> quit
在次登錄
[root@localhost redis]# ./src/redis-cli 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379> auth redis123456 OK 127.0.0.1:6379> ping PONG
清空密碼
127.0.0.1:6379> config set requirepass “” OK #requirepass的值就是密碼 127.0.0.1:6379> quit
quit
請求服務器關閉與當前客戶端的連接??偸欠祷?OK (但是不會被打印顯示,因為當時 Redis-cli 已經退出)。
127.0.0.1:6379[1]> quit [root@localhost redis]#
二、鍵命令
set key value
將字符串值 value關聯到 key 。
127.0.0.1:6379> set key1 1 #傳入的都是字符串 OK
get key
返回 key所關聯的字符串值。如果 key 不存在那么返回特殊值 nil 。
127.0.0.1:6379> get key1 "1"
del key1 [key2 … keyn]
刪除給定的一個或多個 key 。沒有的key忽略,返回被刪除 key 的數量。
127.0.0.1:6379> del key1 (integer) 1
案例:
聲明key1,key2,key3,刪除key1,key2,key4
127.0.0.1:6379> set key1 1 OK 127.0.0.1:6379> set key2 1 OK 127.0.0.1:6379> set key3 1 OK 127.0.0.1:6379> del key1 key2 key4 (integer) 2
exists key
檢查給定 key 是否存在。若 key 存在,返回 1 ,否則返回 0 。
127.0.0.1:6379> exists key3 (integer) 1
type key
返回 key 所儲存的值的類型。none (key不存在)、string (字符串)、list (列表)、set (集合)、zset (有序集)、hash (哈希表)
127.0.0.1:6379> type key1 string
expire key seconds
為給定 key 設置生存時間,以秒為單位,當 key 過期時(生存時間為 0 ),它會被自動刪除。設置成功返回 1 。其他為0。
127.0.0.1:6379> expire key3 30 (integer) 1 127.0.0.1:6379> ttl key3 #查看有效時間 (integer) 24 127.0.0.1:6379> exists key3 #驗證是否存在 (integer) 0
pexpire key mseconds
這個命令和 EXPIRE 命令的作用類似,但是它以毫秒為單位設置 key 的生存時間,而不像 EXPIRE 命令那樣,以秒為單位。設置成功,返回 1。key不存在或設置失敗,返回0
127.0.0.1:6379> set key1 abc OK 127.0.0.1:6379> pexpire key1 10000 (integer) 1 127.0.0.1:6379> ttl key1 (integer) 5 127.0.0.1:6379> pttl key1 (integer) 746
persist key
移除給定 key 的生存時間,將這個 key 從易失的轉換成持久的。當生存時間移除成功時,返回 1 .如果 key 不存在或 key 沒有設置生存時間,返回 0 。
127.0.0.1:6379> set zhangwu 1 OK 127.0.0.1:6379> persist zhangwu (integer) 0 127.0.0.1:6379> expire zhangwu 30 (integer) 1 127.0.0.1:6379> persist zhangwu (integer) 1 127.0.0.1:6379> ttl zhangwu (integer) -1
ttl key
以秒為單位,返回給定 key 的剩余生存時間(TTL, time to live)。當 key 不存在時,返回 -2 。當 key 存在但沒有設置剩余生存時間時,返回 -1 。
127.0.0.1:6379> set key1 helloworld OK 127.0.0.1:6379> ttl key1 (integer) -1 127.0.0.1:6379> expire key1 50 (integer) 1 127.0.0.1:6379> ttl key1 (integer) 44 127.0.0.1:6379> ttl key1 (integer) -2
pttl key
這個命令類似于 TTL 命令,但它以毫秒為單位返回 key 的剩余生存時間,而不是像 TTL 命令那樣,以秒為單位。當 key 不存在時,返回 -2 。當 key 存在但沒有設置剩余生存時間時,返回 -1 。
127.0.0.1:6379> pttl key1 (integer) -2 127.0.0.1:6379> set key1 abc OK 127.0.0.1:6379> pexpire key1 30000 (integer) 1 127.0.0.1:6379> pttl key1 (integer) 27345
keys pattern
查找所有符合給定模式 pattern 的 key 。符合給定模式的 key 列表。
通配符
* 表示多個字符 ? 表示一個字符 [] 表示只能是[]里面的字符 \ 表示指定特殊字符 127.0.0.1:6379> mset zhangsan 1 zhangsi 2 zhangwu 3 OK 127.0.0.1:6379> keys * 1) "zhangwu" 2) "zhangsan" 3) "zhangsi" 127.0.0.1:6379> keys ng* (empty list or set) 127.0.0.1:6379> keys *ng* 1) "zhangwu" 2) "zhangsan" 3) "zhangsi" 127.0.0.1:6379> keys zhang?? 1) "zhangwu" 2) "zhangsi" 127.0.0.1:6379> keys zha[ng]si (empty list or set) 127.0.0.1:6379> keys zhan[ng]si 1) "zhangsi"
move key db
將當前數據庫的 key 移動到給定的數據庫 db 當中。移動成功返回 1 ,失敗則返回 0 。
127.0.0.1:6379> keys * 1) "zhangwu" 2) "zhangsan" 3) "zhangsi" 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * (empty list or set) 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> move zhangsan 1 (integer) 1 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> keys * 1) "zhangsan" 127.0.0.1:6379[1]> select 0 OK 127.0.0.1:6379> keys * 1) "zhangwu" 2) "zhangsi"
注意:
key不存在時,移動失敗
key移動到1庫時,1庫中出現同名的key,移動失敗
random key
從當前數據庫中隨機返回(不刪除)一個 key 。當數據庫不為空時,返回一個 key 。當數據庫為空時,返回 nil 。
127.0.0.1:6379> randomkey "zhangwu" 127.0.0.1:6379> randomkey "key" 127.0.0.1:6379> randomkey "key" 127.0.0.1:6379> randomkey "zhangwu"
rename key newkey
將 key 改名為 newkey 。改名成功時提示 OK ,失敗時候返回一個錯誤。
127.0.0.1:6379> rename key key1 OK 127.0.0.1:6379> keys * 1) "key1" 2) "zhangwu" 3) "zhangsi"
注意:
當 key 和 newkey 相同,或者 key 不存在時,返回一個錯誤。
當 newkey 已經存在時, RENAME 命令將覆蓋舊值。
renamenx key newkey
當且僅當 newkey 不存在時,將 key 改名為 newkey 。修改成功時,返回 1 。如果 newkey 已經存在,返回 0 。
127.0.0.1:6379> renamenx zhangsi zhangwu (integer) 0 127.0.0.1:6379> renamenx zhangsi zhangsan (integer) 1 127.0.0.1:6379> keys * 1) "zhangsan" 2) "key1" 3) "zhangwu"
以上就是Redis中的連接命令與鍵命令操作詳解的詳細內容,更多關于Redis連接命令與鍵命令的資料請關注腳本之家其它相關文章!
相關文章
RabbitMQ+redis+Redisson分布式鎖+seata實現訂單服務的流程分析
訂單服務涉及許多方面,分布式事務,分布式鎖,例如訂單超時未支付要取消訂單,訂單如何防止重復提交,如何防止超賣、這里都會使用到,這篇文章主要介紹了RabbitMQ+redis+Redisson分布式鎖+seata實現訂單服務的流程分析,需要的朋友可以參考下2024-07-07

