【Redis】详细基础命令 - 学习笔记
Redis 環境搭建及運行
安裝(Ubuntu舉例,其他系統類似)
apt-get update && apt-get install redis-server -y啟動 redis
redis-server &注:加上 & 是讓 redis-server 運行在后臺,按 enter 后,即可不阻塞當前終端。
redis 自帶客戶端連接 redis-server
redis-cliRedis 連接與安全驗證
redis 設置 pass 驗證
Redis數據庫可以使用安全的方案,使得進行連接的任何客戶端在執行命令之前都需要進行身份驗證。
要保護Redis安全,需要在配置文件中設置密碼。
查看密碼配置
CONFIG get requirepass默認情況下此屬性為空,這表示還沒有為此實例設置密碼。您可以通過執行以下命令更改此屬性。如下所示:
1) "requirepass" 2) ""進行密碼配置
CONFIG set requirepass "pwd-store-in-server"注:pwd-store-in-server 是你設置的密碼
CONFIG get requirepass設置密碼后,如果任何客戶端運行命令而不進行身份驗證,則會返回一個 (error) NOAUTH Authentication required. 的錯誤信息。 因此,客戶端需要使用AUTH命令來驗證。
AUTH命令語法
AUTH YourNewPasswordRedis連接命令
下表列出了與Redis連接相關的一些基本命令。
redis-cli| 1 | AUTH password | 使用給定的密碼驗證服務器 |
| 2 | ECHO message | 打印給定的字符串信息 |
| 3 | PING | 檢查服務器是否正在運行 |
| 4 | QUIT | 關閉當前連接 |
| 5 | SELECT index | 更改當前連接的所選數據庫 |
在遠程服務器上運行命令
要在Redis遠程服務器上運行命令,需要通過客戶端redis-cli連接到服務器
語法:
redis-cli -h host -p port -a password- host : 主機
- port : 端口
- password : 密碼
舉例:
redis-cli -h 127.0.0.1 -p 6379 -a 123456Redis 數據結構-鍵(key)
Redis 鍵命令用于管理 Redis 中的鍵。以下是使用redis鍵命令的語法。
COMMAND KEY_NAMERedis鍵命令
下表列出了與鍵相關的一些基本命令。
| 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 數據結構-字符串(string)
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 數據結構-哈希(hash)
Redis Hashes 是字符串字段和字符串值之間的映射(類似于PHP中的數組類型)。 因此,它們是表示對象的完美數據類型。
在Redis中,每個哈希(散列)可以存儲多達4億個鍵-值對。
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 數據結構-列表(list)
Redis 列表只是字符串列表,按插入順序排序。可以在列表的頭部或尾部添加Redis 列表中的元素。
列表的最大長度為 2^32 - 1 個元素(即 4294967295 ,每個列表可存儲超過40億個元素)。
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 數據結構-集合(set)
Redis 集合是唯一字符串的無序集合。 唯一值表示集合中不允許鍵中有重復的數據。
在 Redis 中設置添加,刪除和測試成員的存在(恒定時間O(1),而不考慮集合中包含的元素數量)。列表的最大長度為 2^32 - 1 個元素(即4294967295,每組集合超過40億個元素)。
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 事務(transaction)
Redis 事務允許在單個步驟中執行一組命令。以下是事務的兩個屬性:
- 事務中的所有命令作為單個隔離操作并按順序執行。不可以在執行 Redis 事務的中間向另一個客戶端發出的請求。
- Redis 事務也是原子的。原子意味著要么處理所有命令,要么都不處理。
語法示例
Redis 事務由命令 MULTI 命令啟動,然后需要傳遞一個應該在事務中執行的命令列表,然后整個事務由 EXEC 命令執行。
MULTI List of commands here EXECRedis事務命令
下表列出了與 Redis 事務相關的一些基本命令。
| 1 | DISCARD | 丟棄在MULTI之后發出的所有命令 |
| 2 | EXEC | 執行MULTI后發出的所有命令 |
| 3 | MULTI | 標記事務塊的開始 |
| 4 | UNWATCH | 取消 WATCH 命令對所有 key 的監視。 |
| 5 | WATCH key [key …] | 監視給定的鍵以確定MULTI / EXEC塊的執行 |
Redis 腳本
Redis 腳本用于使用 Lua解釋器 來執行腳本。從 Redis 2.6.0 版開始內置到Redis 中。使用腳本的命令是 EVAL 命令。
語法
以下是 EVAL 命令的基本語法。
EVAL script numkeys key [key ...] arg [arg ...]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.conf)
在 Redis 中,在 Redis 的根目錄下有一個配置文件( redis.conf )。當然您可以通過 Redis CONFIG 命令獲取和設置所有的 Redis 配置。
語法 以下是 Redis 中的 CONFIG 命令的基本語法。
CONFIG GET CONFIG_SETTING_NAME要獲取所有配置設置,請使用*代替CONFIG_SETTING_NAME
編輯配置
要更新配置,可以直接編輯 redis.conf 文件,也可以通過 CONFIG set 命令更新配置。
語法 以下是 CONFIG SET 命令的基本語法。
CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUERedis 發送訂閱(pub sub)
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 基準測試(benchmark)
Redis 基準測試是通過同時運行 n 個命令來檢查 Redis 的性能的實用程序。
語法
以下是基準測試命令的基本語法。
redis-benchmark [option] [option value]以下是Redis基準測試中可用選項的列表。
| 序號 | 選項 | 說明 | 默認值 |
| 1 | -h | 指定服務器主機名 | 127.0.0.1 |
| 2 | -p | 指定服務器端口 | 6379 |
| 3 | -s | 指定服務器套接字 | |
| 4 | -c | 指定并行連接的數量 | 50 |
| 5 | -n | 指定請求的總數 | 10000 |
| 6 | -d | 指定SET/GET值的數據大小(以字節為單位) | 2 |
| 7 | -k | 1=keep alive, 0=reconnect | 1 |
| 8 | -r | 使用SET/GET/INCR的隨機鍵,SADD的隨機值 | |
| 9 | -p | 管道*[Math Processing Error]*請求 | 1 |
| 10 | -h | 指定服務器主機名 | |
| 11 | -q | 強制讓Redis安裝。 只顯示query/sec值 | |
| 12 | --csv | 以CSV格式輸出 | |
| 13 | -l | 生成循環,永久運行測試 | |
| 14 | -t | 只運行逗號分隔的測試列表 | |
| 15 | -I | 空閑模式。 只打開N個空閑連接并等待 |
示例1
以下示例通過調用100000個命令檢查Redis。
redis-benchmark -n 100000示例2
下面的示例顯示了Redis基準實用程序中多個選項的使用。
redis-benchmark -h IP -p PORD -a PASSWORK -t set,lpush -n 100000 -q redis-benchmark -h IP -p PORD -a PASSWORK -n 100000 -c 1000 -d 1024 -l總結
以上是生活随笔為你收集整理的【Redis】详细基础命令 - 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Go】从键盘输入字符串和数字
- 下一篇: 【TypeScript】获取随机数,并随