Redis記錄-Redis命令


Redis命令是用於在Redis服務器上執行一些操作。
要在Redis服務器上運行命令,需要一個Redis客戶端。Redis客戶端在Redis包中有提供,這個包在我們前面的安裝教程中就有安裝過了。

語法
以下是Redis客戶端的基本語法。

[yiibai@ubuntu:~]$ redis-cli
Shell

示例
以下示例說明了如何啟動Redis客戶端。

要啟動Redis客戶端,請打開終端並鍵入命令redis-cli。 這將連接到您的本地Redis服務器,現在可以運行任何的Redis命令了。

[yiibai@ubuntu:~]$redis-cli 
redis 127.0.0.1:6379> 
redis 127.0.0.1:6379> PING  
PONG
Shell

在上面的示例中,連接到到在本地機器上運行的Redis服務器並執行PING命令,該命令檢查服務器是否正在運行。

在遠程服務器上運行命令

要在Redis遠程服務器上運行命令,需要通過客戶端redis-cli連接到服務器

語法

[yiibai@ubuntu:~]$ redis-cli -h host -p port -a password
Shell

示例
以下示例顯示如何連接到Redis遠程服務器,在主機(host)127.0.0.1,端口(port)6379上運行,並使用密碼為 mypass

[yiibai@ubuntu:~]$ redis-cli -h 127.0.0.1 -p 6379 -a "mypass" 
redis 127.0.0.1:6379>

redis 127.0.0.1:6379> PING
PONG
Redis鍵命令用於管理Redis中的鍵。以下是使用redis鍵命令的語法。

Redis鍵命令

下表列出了與鍵相關的一些基本命令。

 

編號 命令 描述
1 DEL key 此命令刪除一個指定鍵(如果存在)。
2 DUMP key 此命令返回存儲在指定鍵的值的序列化版本。
3 EXISTS key 此命令檢查鍵是否存在。
4 EXPIRE key seconds 設置鍵在指定時間秒數之后到期/過期。
5 EXPIREAT key timestamp 設置在指定時間戳之后鍵到期/過期。這里的時間是Unix時間戳格式。
6 PEXPIRE key milliseconds 設置鍵的到期時間(以毫秒為單位)。
7 PEXPIREAT key milliseconds-timestamp 以Unix時間戳形式來設置鍵的到期時間(以毫秒為單位)。
8 KEYS pattern 查找與指定模式匹配的所有鍵。
9 MOVE key db 將鍵移動到另一個數據庫。
10 PERSIST key 刪除指定鍵的過期時間,得永生。
11 PTTL key 獲取鍵的剩余到期時間。
12 RANDOMKEY 從Redis返回一個隨機的鍵。
13 RENAME key newkey 更改鍵的名稱。
14 PTTL key 獲取鍵到期的剩余時間(以毫秒為單位)。
15 RENAMENX key newkey 如果新鍵不存在,重命名鍵。
16 TYPE key 返回存儲在鍵中的值的數據類型。

Redis字符串命令

下表列出了一些用於在Redis中管理字符串的基本命令。

編號 命令 描述說明
1 SET key value 此命令設置指定鍵的值。
2 GET key 獲取指定鍵的值。
3 GETRANGE key start end 獲取存儲在鍵上的字符串的子字符串。
4 GETSET key value 設置鍵的字符串值並返回其舊值。
5 GETBIT key offset 返回在鍵處存儲的字符串值中偏移處的位值。
6 MGET key1 [key2..] 獲取所有給定鍵的值
7 SETBIT key offset value 存儲在鍵上的字符串值中設置或清除偏移處的位
8 SETEX key seconds value 使用鍵和到期時間來設置值
9 SETNX key value 設置鍵的值,僅當鍵不存在時
10 SETRANGE key offset value 在指定偏移處開始的鍵處覆蓋字符串的一部分
11 STRLEN key 獲取存儲在鍵中的值的長度
12 MSET key value [key value …] 為多個鍵分別設置它們的值
13 MSETNX key value [key value …] 為多個鍵分別設置它們的值,僅當鍵不存在時
14 PSETEX key milliseconds value 設置鍵的值和到期時間(以毫秒為單位)
15 INCR key 將鍵的整數值增加1
16 INCRBY key increment 將鍵的整數值按給定的數值增加
17 INCRBYFLOAT key increment 將鍵的浮點值按給定的數值增加
18 DECR key 將鍵的整數值減1
19 DECRBY key decrement 按給定數值減少鍵的整數值
20 APPEND key value 將指定值附加到鍵

Redis哈希命令

下表列出了與哈希/散列相關的一些基本命令。

序號 命令 說明
1 HDEL key field2 [field2] 刪除一個或多個哈希字段。
2 HEXISTS key field 判斷是否存在散列字段。
3 HGET key field 獲取存儲在指定鍵的哈希字段的值。
4 HGETALL key 獲取存儲在指定鍵的哈希中的所有字段和值
5 HINCRBY key field increment 將哈希字段的整數值按給定數字增加
6 HINCRBYFLOAT key field increment 將哈希字段的浮點值按給定數值增加
7 HKEYS key 獲取哈希中的所有字段
8 HLEN key 獲取散列中的字段數量
9 HMGET key field1 [field2] 獲取所有給定哈希字段的值
10 HMSET key field1 value1 [field2 value2 ] 為多個哈希字段分別設置它們的值
11 HSET key field value 設置散列字段的字符串值
12 HSETNX key field value 僅當字段不存在時,才設置散列字段的值
13 HVALS key 獲取哈希中的所有值

Redis列表命令

下表列出了與列表相關的一些基本命令。

序號 命令 說明
1 BLPOP key1 [key2 ] timeout 刪除並獲取列表中的第一個元素,或阻塞,直到有一個元素可用
2 BRPOP key1 [key2 ] timeout 刪除並獲取列表中的最后一個元素,或阻塞,直到有一個元素可用
3 BRPOPLPUSH source destination timeout 從列表中彈出值,將其推送到另一個列表並返回它; 或阻塞,直到一個可用
4 LINDEX key index 通過其索引從列表獲取元素
5 LINSERT key BEFORE/AFTER pivot value 在列表中的另一個元素之前或之后插入元素
6 LLEN key 獲取列表的長度
7 LPOP key 刪除並獲取列表中的第一個元素
8 LPUSH key value1 [value2] 將一個或多個值添加到列表
9 LPUSHX key value 僅當列表存在時,才向列表添加值
10 LRANGE key start stop 從列表中獲取一系列元素
11 LREM key count value 從列表中刪除元素
12 LSET key index value 通過索引在列表中設置元素的值
13 LTRIM key start stop 修剪列表的指定范圍
14 RPOP key 刪除並獲取列表中的最后一個元素
15 RPOPLPUSH source destination 刪除列表中的最后一個元素,將其附加到另一個列表並返回
16 RPUSH key value1 [value2] 將一個或多個值附加到列表
17 RPUSHX key value 僅當列表存在時才將值附加到列表

Redis集合命令

下表列出了與集合相關的一些基本命令。

序號 命令 說明
1 SADD key member1 [member2] 將一個或多個成員添加到集合
2 SCARD key 獲取集合中的成員數
3 SDIFF key1 [key2] 減去多個集合
4 SDIFFSTORE destination key1 [key2] 減去多個集並將結果集存儲在鍵中
5 SINTER key1 [key2] 相交多個集合
6 SINTERSTORE destination key1 [key2] 交叉多個集合並將結果集存儲在鍵中
7 SISMEMBER key member 判斷確定給定值是否是集合的成員
8 SMOVE source destination member 將成員從一個集合移動到另一個集合
9 SPOP key 從集合中刪除並返回隨機成員
10 SRANDMEMBER key [count] 從集合中獲取一個或多個隨機成員
11 SREM key member1 [member2] 從集合中刪除一個或多個成員
12 SUNION key1 [key2] 添加多個集合
13 SUNIONSTORE destination key1 [key2] 添加多個集並將結果集存儲在鍵中
14 SSCAN key cursor [MATCH pattern] [COUNT count] 遞增地迭代集合中的元素

Redis集排序集合命令

Redis HyperLogLog是一種使用隨機化的算法,以少量內存提供集合中唯一元素數量的近似值。

HyperLogLog 可以接受多個元素作為輸入,並給出輸入元素的基數估算值:

  • 基數:集合中不同元素的數量。比如 {‘apple’, ‘banana’, ‘cherry’, ‘banana’, ‘apple’} 的基數就是 3 。
  • 估算值:算法給出的基數並不是精確的,可能會比實際稍微多一些或者稍微少一些,但會控制在合理的范圍之內。

HyperLogLog 的優點是,即使輸入元素的數量或者體積非常非常大,計算基數所需的空間總是固定的、並且是很小的。

在 Redis 里面,每個 HyperLogLog 鍵只需要花費 12 KB 內存,就可以計算接近 2^64 個不同元素的基數。這和計算基數時,元素越多耗費內存就越多的集合形成鮮明對比。

但是,因為 HyperLogLog 只會根據輸入元素來計算基數,而不會儲存輸入元素本身,所以
HyperLogLog 不能像集合那樣,返回輸入的各個元素。

下表列出了 HyperLogLog 相關的一些基本命令。

序號 命令 說明
1 PFADD key element [element …] 將指定的元素添加到指定的HyperLogLog 中。
2 PFCOUNT key [key …] 返回給定 HyperLogLog 的基數估算值。
3 PFMERGE destkey sourcekey [sourcekey …]

將多個 HyperLogLog 合並為一個 HyperLogLog

 

Redis發布訂閱(pub/sub)是一種消息通信模式:發送者(pub)發送消息,訂閱者(sub)接收消息。
Redis 發布訂閱(pub/sub)實現了消息系統,發送者(在redis術語中稱為發布者)在接收者(訂閱者)接收消息時發送消息。傳送消息的鏈路稱為信道。

在Redis中,客戶端可以訂閱任意數量的信道。

Redis發布訂閱命令

下表列出了與Redis發布訂閱相關的一些基本命令。

序號 命令 說明
1 PSUBSCRIBE pattern [pattern …] 訂閱一個或多個符合給定模式的頻道。
2 PUBSUB subcommand [argument [argument …]] 查看訂閱與發布系統狀態。
3 PUBLISH channel message 將信息發送到指定的頻道。
4 PUNSUBSCRIBE [pattern [pattern …]] 退訂所有給定模式的頻道。
5 SUBSCRIBE channel [channel …] 訂閱給定的一個或多個頻道的信息。
6 UNSUBSCRIBE [channel [channel …]] 退訂給定的頻道。

 

Redis事務允許在單個步驟中執行一組命令。以下是事務的兩個屬性:

  • 事務中的所有命令作為單個隔離操作並按順序執行。不可以在執行Redis事務的中間向另一個客戶端發出的請求。
  • Redis事務也是原子的。原子意味着要么處理所有命令,要么都不處理。

語法示例

Redis事務由命令MULTI命令啟動,然后需要傳遞一個應該在事務中執行的命令列表,然后整個事務由EXEC命令執行。

redis 127.0.0.1:6379> MULTI 
OK 
List of commands here 
redis 127.0.0.1:6379> EXEC
Shell

示例

以下示例說明了如何啟動和執行Redis事務。

redis 127.0.0.1:6379> MULTI 
OK 
redis 127.0.0.1:6379> SET mykey "redis" 
QUEUED 
redis 127.0.0.1:6379> GET mykey 
QUEUED 
redis 127.0.0.1:6379> INCR visitors 
QUEUED 
redis 127.0.0.1:6379> EXEC  
1) OK 
2) "redis" 
3) (integer) 1
Shell

Redis事務命令

下表列出了與Redis事務相關的一些基本命令。

序號 命令 說明
1 DISCARD 丟棄在MULTI之后發出的所有命令
2 EXEC 執行MULTI后發出的所有命令
3 MULTI 標記事務塊的開始
4 UNWATCH 取消 WATCH 命令對所有 key 的監視。
5 WATCH key [key …] 監視給定的鍵以確定MULTI / EXEC塊的執行

Redis腳本用於使用Lua解釋器來執行腳本。從Redis 2.6.0版開始內置到Redis中。使用腳本的命令是EVAL命令。

語法

以下是EVAL命令的基本語法。

redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
Shell

示例

以下示例說明了Redis腳本的工作原理。

redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 
key2 first second  
1) "key1" 
2) "key2" 
3) "first" 
4) "second"
Shell

Redis事務命令

下表列出了與Redis腳本相關的一些基本命令。

序號 命令 說明
1 EVAL script numkeys key [key …] arg [arg …] 執行一個Lua腳本。
2 EVALSHA sha1 numkeys key [key …] arg [arg …] 執行一個Lua腳本。
3 SCRIPT EXISTS script [script …] 檢查腳本緩存中是否存在腳本。
4 SCRIPT FLUSH 從腳本緩存中刪除所有腳本。
5 SCRIPT KILL 殺死當前正在執行的腳本。
6 SCRIPT LOAD script 將指定的Lua腳本加載到腳本緩存中。

Redis中的連接命令基本上是用於管理與Redis服務器的客戶端連接。

示例

以下示例說明客戶端如何向Redis服務器驗證自身,並檢查服務器是否正在運行。

redis 127.0.0.1:6379> AUTH "password" 
OK 
redis 127.0.0.1:6379> PING 
PONG
Shell

Redis連接命令

下表列出了與Redis連接相關的一些基本命令。

序號 命令 說明
1 AUTH password 使用給定的密碼驗證服務器
2 ECHO message 打印給定的字符串信息
3 PING 檢查服務器是否正在運行
4 QUIT 關閉當前連接
5 SELECT index 更改當前連接的所選數據庫

Redis服務器命令基本上是用於管理Redis服務器。

示例

以下示例說明了如何獲取有關服務器的所有統計信息和信息。

127.0.0.1:6379> info
# Server
redis_version:2.8.4
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:8f6097d7914679ca
redis_mode:standalone
os:Linux 3.19.0-25-generic i686
arch_bits:32
multiplexing_api:epoll
gcc_version:4.8.2
process_id:1004
run_id:1e53acea2aa628199c4e438a3ed815d96eebc036
tcp_port:6379
uptime_in_seconds:888450
uptime_in_days:10
hz:10
lru_clock:1861984
config_file:/etc/redis/redis.conf

# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0

# Memory
used_memory:424872
used_memory_human:414.91K
used_memory_rss:6709248
used_memory_peak:424464
used_memory_peak_human:414.52K
used_memory_lua:22528
mem_fragmentation_ratio:15.79
mem_allocator:jemalloc-3.4.1

# Persistence
loading:0
rdb_changes_since_last_save:0
rdb_bgsave_in_progress:0
rdb_last_save_time:1486607123
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok

# Stats
total_connections_received:1
total_commands_processed:263
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:257
keyspace_misses:0
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:4793

# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

# CPU
used_cpu_sys:24.65
used_cpu_user:15.84
used_cpu_sys_children:0.08
used_cpu_user_children:0.00

# Keyspace
db0:keys=14,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
127.0.0.1:6379>
Shell

Redis服務器命令

下表列出了與Redis服務器相關的一些基本命令。

序號 命令 說明
1 BGREWRITEAOF 異步重寫僅追加的文件
2 BGSAVE 將數據集異步保存到磁盤
3 CLIENT KILL [ip:port] [ID client-id] 殺死或斷開指定的客戶端的連接
4 CLIENT LIST 獲取到服務器的客戶端連接列表
5 CLIENT GETNAME 獲取當前連接的名稱
6 CLIENT PAUSE timeout 在指定時間內停止處理來自客戶端的命令
7 CLIENT SETNAME connection-name 設置當前連接名稱
8 CLUSTER SLOTS 獲取群集插槽到節點映射的數組
9 COMMAND 獲取Redis命令詳細信息的數組
10 COMMAND COUNT 獲取Redis命令的總數
11 COMMAND GETKEYS 提取鍵給出一個完整的Redis的命令
12 BGSAVE 將數據集異步保存到磁盤
13 COMMAND INFO command-name [command-name …] 獲取特定Redis命令詳細信息的數組
14 CONFIG GET parameter 獲取配置參數的值
15 CONFIG REWRITE 使用內存中配置來重寫配置文件
16 CONFIG SET parameter value 將配置參數設置為給定值
17 CONFIG RESETSTAT 重置由INFO返回的統計信息
18 DBSIZE 返回所選數據庫中的鍵數量
19 DEBUG OBJECT key 獲取有關鍵的調試信息
20 DEBUG SEGFAULT 使服務器崩潰
21 FLUSHALL 從所有數據庫中刪除所有鍵
22 FLUSHDB 刪除當前數據庫中的所有鍵
23 INFO [section] 獲取有關服務器的信息和統計信息
24 LASTSAVE 獲取上次成功保存到磁盤的UNIX時間戳
25 MONITOR 監聽服務器實時接收的所有請求
26 ROLE 返回實例在復制上下文中的角色
27 SAVE 將數據集同步保存到磁盤
28 SHUTDOWN [NOSAVE] [SAVE] 將數據集同步保存到磁盤,然后關閉服務器
29 SLAVEOF host port 使服務器成為另一個實例的從屬,或將其提升作為主服務器
30 SLOWLOG subcommand [argument] 管理Redis慢查詢日志
31 SYNC 用於復制的命令
32 TIME 返回當前服務器的時間



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM