當前位置:
首頁 > 最新 > 打好 Redis 的基礎,你可能需要這些常用命令

打好 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

類型相關命令

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"

2LISTS

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"

3SETS

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"

4SORTED 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"

5HASHES

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 向某一頻道發送信息

本周Daily

近期微學堂


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 ITPUB 的精彩文章:

TAG:ITPUB |