溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

打好Redis的基礎需要學習哪些常用命令

發(fā)布時間:2021-11-11 21:40:55 來源:億速云 閱讀:169 作者:柒染 欄目:數據庫

打好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認證命令,執(zhí)行其他命令前,必須先進行認證(前提是在配置文件中設置了認證參數)

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 創(chuàng)建當前庫的備份

bgsave 同save,但是是后臺備份,不阻塞主進程

eval 執(zhí)行l(wèi)ua腳本

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在給定區(qū)間的數量

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不存在,則先創(chuàng)建

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 執(zhí)行事務

discard 撤銷事務

watch 監(jiān)視數據庫鍵,若發(fā)生改變,返回空

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)、訂閱發(fā)布

subscribe 訂閱一個或多個頻道

publish 向某一頻道發(fā)送信息

關于打好Redis的基礎需要學習哪些常用命令問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI